好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

智能合约生成php 智能合约生成省gas函数名

很多站长朋友们都不太清楚智能合约生成php,今天小编就来给大家整理智能合约生成php,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 长安链--智能合约的开发、编译、安装、调用、查询(二) 2、 在线发布智能合约https://remix.ethereum.org的简单使用 3、 如何编写智能合约 4、 用Go来做以太坊开发④智能合约 长安链--智能合约的开发、编译、安装、调用、查询(二)

官方参考文档:

    学习智能合约的开发,通常需要有Demo来学习API的使用方式,项目组织方式。在长安链学习过程中也是如此,所以第一步获取合约模块。

1.1) 拉取镜像: docker pull chainmakerofficial/chainmaker-go-contract:1.1.1

长安链为我们提供合约开发的镜像,内部包含合约模板。

1.2) 启动并进入容器: docker run -it --name chainmaker-go-contract -v ${PWD}:/home chainmakerofficial/chainmaker-go-contract:1.1.1 bash

启动 chainmaker-go-contract 容器并进入,同时将当前目录挂载到容器的 /home 目录下

1.3) 解压并分析合约模板

cp /home

tar xzvf contract_go_template.tar.gz

按照官方参考文档方式 在 chainmaker-go-contract 容器中执行 ./build.sh

生成main.wasm文件

2)执行TestUserContractHash Test方法

    这里使用的是默认配置文件,如果需要改变端口、连接数、TLS使能等等,需要修改 chainmaker-sdk-go/testdata/sdk_config.yml

在线发布智能合约https://remix.ethereum.org的简单使用

Remix IDE是开发以太坊智能合约的在线IDE工具,部署简单的智能合约非常方便

Remix地址:

使用的前提是需要谷歌或者火狐的浏览器,且安装了MetaMask 插件

MetaMask 插件的安装使用可以查看这个链接

接下来我用Remix IDE写一个简单的合约,一切开始都从Hello Word 开始。

默认会有一个Ballot 投票合约,这我我点左上角的添加功能,重新建立一个文件,文件名命名为personal.sol

这里我些一个简单的合约 

solidity 的基本语法可以去这个网站实战练习()这个超爽边玩。

我这里写个say()方法  和给个属性age

合约截图如下:

OK编译没问题,接下来我们在测试网上部署合约,先要确定你的MetaMask 插件是选择的测试网络(我一般选择Ropsten测试网)

此时开始部署,点击浏览器MetaMask插件 确认提交等待测试网络上的矿工处理。

部署成功后点击At Address 可以查看到合约公开的操作方法,每执行一次方法就也就是执行一次合约的事物,这是需要Gas 燃料的,没一步需要矿工处理

OK 此时我们查看一下 age的值 点击age ,可以看到age = 10,调用一下increaseAge  方法给它赋值80,此刻执行一下合约,矿工处理完后,查看一下age 变量已经为80

现在一个超简单的合约已经部署成功了,智能合约是一个很有想象空间的玩意,从简单的合约开始,熟练Solidity 语法。

如何编写智能合约

一般安卓手机操作方法:1,解锁到主屏幕 点击应用功能。 2,点击信息图标。 3,新建信息。 4,输入收件人号码。 5,编辑信息内容。 6,发送信息即可。

用Go来做以太坊开发④智能合约

在这个章节中我们会介绍如何用Go来编译,部署,写入和读取智能合约。

与智能合约交互,我们要先生成相应智能合约的应用二进制接口ABI(application binary interface),并把ABI编译成我们可以在Go应用中调用的格式。

第一步是安装 Solidity编译器 ( solc ).

Solc 在Ubuntu上有snapcraft包。

Solc在macOS上有Homebrew的包。

其他的平台或者从源码编译的教程请查阅官方solidity文档 install guide .

我们还得安装一个叫 abigen 的工具,来从solidity智能合约生成ABI。

假设您已经在计算机上设置了Go,只需运行以下命令即可安装 abigen 工具。

我们将创建一个简单的智能合约来测试。 学习更复杂的智能合约,或者智能合约的开发的内容则超出了本书的范围。 我强烈建议您查看 truffle framework 来学习开发和测试智能合约。

这里只是一个简单的合约,就是一个键/值存储,只有一个外部方法来设置任何人的键/值对。 我们还在设置值后添加了要发出的事件。

虽然这个智能合约很简单,但它将适用于这个例子。

现在我们可以从一个solidity文件生成ABI。

它会将其写入名为“Store_sol_Store.abi”的文件中

现在让我们用 abigen 将ABI转换为我们可以导入的Go文件。 这个新文件将包含我们可以用来与Go应用程序中的智能合约进行交互的所有可用方法。

为了从Go部署智能合约,我们还需要将solidity智能合约编译为EVM字节码。 EVM字节码将在事务的数据字段中发送。 在Go文件上生成部署方法需要bin文件。

现在我们编译Go合约文件,其中包括deploy方法,因为我们包含了bin文件。

在接下来的课程中,我们将学习如何部署智能合约,然后与之交互。

Commands

Store.sol

solc version used for these examples

如果你还没看之前的章节,请先学习 编译智能合约的章节 因为这节内容,需要先了解如何将智能合约编译为Go文件。

假设你已经导入从 abigen 生成的新创建的Go包文件,并设置ethclient,加载您的私钥,下一步是创建一个有配置密匙的交易发送器(tansactor)。 首先从go-ethereum导入 accounts/abi/bind 包,然后调用传入私钥的 NewKeyedTransactor 。 然后设置通常的属性,如nonce,燃气价格,燃气上线限制和ETH值。

如果你还记得上个章节的内容, 我们创建了一个非常简单的“Store”合约,用于设置和存储键/值对。 生成的Go合约文件提供了部署方法。 部署方法名称始终以单词 Deploy 开头,后跟合约名称,在本例中为 Store 。

deploy函数接受有密匙的事务处理器,ethclient,以及智能合约构造函数可能接受的任何输入参数。我们测试的智能合约接受一个版本号的字符串参数。 此函数将返回新部署的合约地址,事务对象,我们可以交互的合约实例,还有错误(如果有)。

就这么简单:)你可以用事务哈希来在Etherscan上查询合约的部署状态:

Commands

Store.sol

contract_deploy.go

solc version used for these examples

这写章节需要了解如何将智能合约的ABI编译成Go的合约文件。如果你还没看, 前先读 上一个章节 。

一旦使用 abigen 工具将智能合约的ABI编译为Go包,下一步就是调用“New”方法,其格式为“New<contractname style="box-sizing: border-box; font-size: 16px; -ms-text-size-adjust: auto; -webkit-tap-highlight-color: transparent;">”,所以在我们的例子中如果你 回想一下它将是 NewStore 。 此初始化方法接收智能合约的地址,并返回可以开始与之交互的合约实例。</contractname>

Commands

Store.sol

contract_load.go

solc version used for these examples

这写章节需要了解如何将智能合约的ABI编译成Go的合约文件。如果你还没看, 前先读 上一个章节 。

在上个章节我们学习了如何在Go应用程序中初始化合约实例。 现在我们将使用新合约实例提供的方法来阅读智能合约。 如果你还记得我们在部署过程中设置的合约中有一个名为 version 的全局变量。 因为它是公开的,这意味着它们将成为我们自动创建的getter函数。 常量和view函数也接受 bind.CallOpts 作为第一个参数。了解可用的具体选项要看相应类的 文档 一般情况下我们可以用 nil 。

Commands

Store.sol

contract_read.go

solc version used for these examples

这写章节需要了解如何将智能合约的ABI编译成Go的合约文件。如果你还没看, 前先读 上一个章节 。

写入智能合约需要我们用私钥来对交易事务进行签名。

我们还需要先查到nonce和燃气价格。

接下来,我们创建一个新的keyed transactor,它接收私钥。

然后我们需要设置keyed transactor的标准交易选项。

现在我们加载一个智能合约的实例。如果你还记得 上个章节 我们创建一个名为 Store 的合约,并使用 abigen 工具生成一个Go文件。 要初始化它,我们只需调用合约包的 New 方法,并提供智能合约地址和ethclient,它返回我们可以使用的合约实例。

我们创建的智能合约有一个名为 SetItem 的外部方法,它接受solidity“bytes32”格式的两个参数(key,value)。 这意味着Go合约包要求我们传递一个长度为32个字节的字节数组。 调用 SetItem 方法需要我们传递我们之前创建的 auth 对象(keyed transactor)。 在幕后,此方法将使用它的参数对此函数调用进行编码,将其设置为事务的 data 属性,并使用私钥对其进行签名。 结果将是一个已签名的事务对象。

现在我就可以看到交易已经成功被发送到了以太坊网络了:

要验证键/值是否已设置,我们可以读取智能合约中的值。

搞定!

Commands

Store.sol

contract_write.go

solc version used for these examples

有时您需要读取已部署的智能合约的字节码。 由于所有智能合约字节码都存在于区块链中,因此我们可以轻松获取它。

首先设置客户端和要读取的字节码的智能合约地址。

现在你需要调用客户端的 codeAt 方法。 codeAt 方法接受智能合约地址和可选的块编号,并以字节格式返回字节码。

你也可以在etherscan上查询16进制格式的字节码

contract_bytecode.go

首先创建一个ERC20智能合约interface。 这只是与您可以调用的函数的函数定义的契约。

然后将interface智能合约编译为JSON ABI,并使用 abigen 从ABI创建Go包。

假设我们已经像往常一样设置了以太坊客户端,我们现在可以将新的 token 包导入我们的应用程序并实例化它。这个例子里我们用 Golem 代币的地址.

我们现在可以调用任何ERC20的方法。 例如,我们可以查询用户的代币余额。

我们还可以读ERC20智能合约的公共变量。

我们可以做一些简单的数学运算将余额转换为可读的十进制格式。

同样的信息也可以在etherscan上查询:

Commands

erc20.sol

contract_read_erc20.go

solc version used for these examples

关于智能合约生成php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于智能合约生成php 智能合约生成省gas函数名的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did168582
更新时间:2023-04-11   阅读:20次

上一篇: cdn怎么获得php cdn的访问流程

下一篇:php表格显示数据库数据 php如何显示数据库里图片

相关资讯

最新资料更新

  • 1.dedecms伪静态设置以及目录链接301跳转实现方法(伪静态)
  • 2.织梦DEDECMS友情链接出现内页与首页都在首页显示解决方法
  • 3.DEDECMS的20位MD5加密密文解密示例介绍
  • 4.DedeCMS Wap.php 绑定域名的解决办法
  • 5.织梦DedeCMSv5.7安装初始化数据体验包失败的解决方法
  • 6.Dedecms程序SEO常用的列表标签调用代码集合 dedecms优化
  • 7.详解解决织梦dede:title字数限制的两种方法
  • 8.DEDECMS会员签到加积分的实现方法
  • 9.dedecms调用图片集中图片的注释
  • 10.详解dedecms使用整合阿里大鱼短信接口进行短信发送的教程
  • 11.dedecms三级栏目调用方法
  • 12.dedecms首页调用随机文章及自动更新功能实例
  • 13.织梦dedecms默认作者和默认来源修改方法
  • 14.织梦dedecms会员注册邮件验证设置方法
  • 15.织梦(dede)模板标签书写格式的规范和相关注意事项
  • 16.Linux下安装DedeCMS及安全设置教程
  • 17.dedecms部分文章出现读取附加信息出错的解决办法
  • 18.Dedecms网站地图获取文章列表支持标签调用的方法
  • 19.织梦Dedecms获取缩略图片原图地址的方法
  • 20.dedecms模板标签如何做判断示例代码

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]