您好,登录后才能下订单哦!
这篇文章主要讲解了“如何用Solidity编写一个智能合约”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用Solidity编写一个智能合约”吧!
开始之前,您需要安装的工具:
1. Ganache:这将是我们用来创建仅在我们的计算机上运行的私有区块链的工具。链接:http://truffleframework.com/ganache/
2.MyEtherWallet副本,在这种情况下,URL托管的网站将不起作用。链接:https://github.com/kvhnuke/etherwallet/releases 注意:下载的版本是etherwallet-v3.xx.x.x.zip。
安装完成后,我们开始访问https://remix.ethereum.org/,打开这个网址后显示如下:
这是Remix,一个Solidity语言的在线编译器,我们将用此编译器来编写智能合约代码。
第一次访问该页面时,我们需要将本文编辑器预加载的代码删除,并替换为如下内容:
这是我们counter的代码。正如你所看到的,它有一个变量和三个函数。变量count是一个私有整数,这意味着它不能被合约以外的任何人访问。第一个函数incrementCounter()通过递增其值来改变或改变count的值。 第二个函数decrementCounter()通过递减其值来改变count的值。第三个函数getCount()访问count并将其值返回给任何函数。
当把counter的代码粘贴到Remix时,它应该如下所示并自动编译:
我们将保留该选项卡,以便稍后返回。 现在,打开Ganache,会显示如下所示:
屏幕最上方所显示“RPC” 服务器,我们一会儿需要用到它的信息。
现在,解压MyEtherWallet,并打开文件夹。 然后,在浏览器中打开index.html文件便可看到如下图所示。
在右上角,您可以看到一个关于以太坊网络连接的下拉列表,默认情况下,它会连接到以太坊(ETH)主网。我们需要点击下拉框选择我们需要的网络。
现在您可以输入Ganache早些时候给我们提供的RPC服务器信息。 注意:您可以随意命名节点。
MyEtherWallet现在通过Ganache连接到您的自托管区块链。让我们使用MyEtherWallet将Counter智能合约上传到我们的区块链。为此,我们在MyEtherWallet的顶部导航栏中点击“Contracts”并选择“Deploy Contract”。
正如您所看到的,MyEtherWallet向我们请求合约的字节码。 要找到这个,我们将回到我们的Remix IDE并点击“Details”按钮。
您现在应该看到一个对话,其中包含有关我们的Counter合约的大量信息。
要复制字节码,我们将点击“BYTECODE”旁边的剪贴板图标。
然后,我们将回到MyEtherWallet并将字节码粘贴到对话框中。
现在我们可以向下滚动并导入一个帐户以上传合约。幸运的是,Ganache给了我们5个地址,我们可以使用它与我们的私有区块链进行交互。要使用其中一个上传此合约,我们可以返回到Ganache并单击任何地址的钥匙图标。
点击钥匙之后,它会向我们显示与此帐户关联的私钥。
我们复制此私钥到MyEtherWallet。
现在,如果我们点击“Unlock”,MyEtherWallet会询问我们是否签署这笔交易并部署我们的合约。我们执行它。
如果交易成功,那么Ganache将增加其“Current Block”值,并且我们用于部署合约的账户的交易计数也增加。
我们的合约现在已上传到我们的区块链! 要通过递增和递减counter与其交互,我们可以返回MyEtherWallet并选择“Interact With Contract”。
MyEtherWallet现在要求我们新部署的合约所在的地址和我们合约的应用程序二进制接口(ABI)。要找到地址,我们可以回到Ganache并查看我们的交易记录。
此页面显示我们之前在部署合约时创建的交易。正如你所看到的,Ganache告诉我们用来部署合约的地址,我们区块链上的合约地址以及有关交易的更多信息。让我们单击事务,复制创建的合约地址,并将其粘贴到MyEtherWallet中。
剩下的就是我们需要的ABI。这是告诉MyEtherWallet如何与我们的合约进行交互。为了得到它,我们将回到Remix并点击“INTERFACE - ABI”旁边的剪贴板图标将其复制。
现在我们可以回到MyEtherWallet,将ABI粘贴到文本框中,然后单击“Access”按钮。
真棒! 现在我们可以通过点击“Select a function”下拉菜单与我们的合约进行交互。
成功运行!在更改计数值之前,我们的合约返回0。但是,我们还有另外两个函数,incrementCounter()和decrementCounter()。我们来调用incrementCounter()来测试一下。我们将通过再次选择函数下拉菜单,选择incrementCounter并创建一个新的交易。
这只是增加了计数值。现在我们可以再次调用getCount()来确认值是否真的改变了。
正如你所看到的,count现在等于1! 所以,我们的incrementCount()函数成功运行。你可以尝试调用decrementCount()函数,并且探索更多!
感谢各位的阅读,以上就是“如何用Solidity编写一个智能合约”的内容了,经过本文的学习后,相信大家对如何用Solidity编写一个智能合约这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。