美文网首页
基于Ethereum Wallet的Solidity Hello

基于Ethereum Wallet的Solidity Hello

作者: Venture_Mark | 来源:发表于2018-11-19 19:29 被阅读0次

    本篇文章,我们将编写一个最基本的合约代码,并且一步步讲解如何通过Ethereum Wallet将合约部署到区块链,同时我们将通过本demo的演示如何通过发送数据和接收数据和合约进行交互。

    Solidity合约的语法和面向对象编程语言非常相似,一个合约有我们能够调用的方法(函数)和能够存储数据和读取数据的属性(状态变量)

    Counter合约源码

    我们的Counter合约将increment方法被调用的次数存储到count属性中。并且每个人都可以通过getCount方法获取区块链上count的值。

    pragma solidity ^0.4.4;
    
    contract Counter {
    
        /* 定义一个uint类型的count变量 */
        uint count = 0;
    
        /* 当这个方法被调用时count的值会加1 */
        function increment() public {
           count = count + 1;
        }
    
        /* 读取count数据 */
        function getCount() constant returns (uint) {
           return count;
        }
    
    }
    
    

    Counter合约部署

    • 要想发布我们的合约到区块链,打开Ethereum Wallet然后点击Contracts
    image.png
    • 点击部署一个新合约。

    [图片上传失败...(image-4732e1-1542626858817)]

    • 将我们的Counter合约代码拷贝到Ethereum Wallet代码区域。

    • 选择Counter合约,然后点击DEPLOY按钮。

    • 输入当前部署的钱包的密码,然后点击SEND TRANSACTION按钮。
    • 查看最新交易。
    • 查看交易信息。

    和Counter合约互动

    • 因为我们部署的合约是部署在Account 2上的,所以我们可以点击Account 2查看最新的交易记录。
    • 点击Counter按钮,进入交互界面。
    • 选择IncrementAccount 2,然后点击EXECUTE按钮。
    • 输入密码,点击SEND TRANSACTION按钮。
    • 交易执行完成后,count会自动加1

    小结

    部署合约时,因为要往区块链写入数据,需要矿工进行验证,所以需要花费一些gas奖励给矿工,还有当我们每次调用increment方法时,也属于写入数据,同样需要花费gas,但是调用getCount方法时只是从区块链读取数据,无需验证,读取数据无须花费gas。

    相关文章

      网友评论

          本文标题:基于Ethereum Wallet的Solidity Hello

          本文链接:https://www.haomeiwen.com/subject/penafqtx.html