『0004』- 基于Ethereum Wallet的Solidity HelloWorld智能合约(Smart Contract)

孔壹学院:国内区块链职业教育领先品牌
作者:黎跃春,区块链、高可用架构工程师
微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org

相信大家都有学习各种开发语言的经历,一般学习任何一门语言都会先从最简单的HelloWorld开始,所以本篇文章,我们将编写一个最基本的合约代码,并且一步步讲解如何通过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

  • 点击部署一个新合约。

  • 将我们的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。

技术交流

  • 区块链技术交流QQ群:348924182

  • 「区块链部落」官方公众号

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎跃春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值