请选择 进入手机版 | 继续访问电脑版

区块链开发——基于Ethereum Wallet的Solidity HelloWorld智能合约

所在版块: ETC 2017-12-15 10:43 [复制链接] 查看: 1502|回复: 1
ull4WWhzZ9ll82z9.jpg
博客 | http://liyuechun.org
VCVn6CT06U04cVVv.jpg
相信大家都有学习各种开发语言的经历,一般学习任何一门语言都会先从最简单的HelloWorld开始,所以本篇文章,我们将编写一个最基本的合约代码,并且一步步讲解如何通过Ethereum Wallet将合约部署到区块链,同时我们将通过本demo的演示如何通过发送数据和接收数据和合约进行交互。
Solidity合约的语法和面向对象编程语言非常相似,一个合约有我们能够调用的方法(函数)和能够存储数据和读取数据的属性(状态变量)。
Counter合约源码

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

要想发布我们的合约到区块链,打开Ethereum Wallet然后点击Contracts。
ctHkdcCY6kKGFI2v.jpg
将我们的Counter合约代码拷贝到Ethereum Wallet代码区域。
A12t2tIiHISsxFTi.jpg
k6Ry7veei8RHXyR0.jpg
izdV134NFfDFW113.jpg
lXRi9rwLgnGgRlGv.jpg
区和Counter合约互动

因为我们部署的合约是部署在Account 2上的,所以我们可以点击Account 2查看最新的交易记录。
VmT3oLs5Zszt656L.jpg

bzdCia37jEcY6ir9.jpg
F60eeFT6XWtEWTHS.jpg
小结

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

使用道具 举报

jimi2018

发表于 2018-4-15 17:55:13 | 显示全部楼层
区块链开发、以太坊开发的技术资料资源汇总

一个适合区块链新手的以太坊DApp开发教程:
http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180415btc112

一个用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台:
http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6/?affid=20180415btc112
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

    0
    威望
    36
    金币
    0
    活跃
关注千币网服务号:千币圈

Archiver|小黑屋|手机版|比特币 ( 滇ICP备15005918号-2|关于我们

GMT+8, 2019-7-22 17:58 , Processed in 0.378886 second(s), 52 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回列表