『0004』- 基于Ethereum Wallet的Solidity HelloWorld智能合约(Smart Contract)
来源:互联网 发布:天津大学有网络教育吗 编辑:程序博客网 时间:2024/06/07 12:23
孔壹学院:国内区块链职业教育领先品牌
作者:黎跃春,区块链、高可用架构工程师
微信: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
按钮,进入交互界面。
- 选择
Increment
和Account 2
,然后点击EXECUTE
按钮。
- 输入密码,点击
SEND TRANSACTION
按钮。
- 交易执行完成后,count会自动加1
小结
部署合约时,因为要往区块链写入数据,需要矿工进行验证,所以需要花费一些gas奖励给矿工,还有当我们每次调用increment
方法时,也属于写入数据,同样需要花费gas,但是调用getCount
方法时只是从区块链读取数据,无需验证,读取数据无须花费gas。
技术交流
区块链技术交流QQ群:348924182
「区块链部落」官方公众号
阅读全文
0 0
- 『0004』- 基于Ethereum Wallet的Solidity HelloWorld智能合约(Smart Contract)
- 什么是智能合约(Smart Contract)?
- 『0005』- 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)
- 『0005』- 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)
- 以太坊智能合约ABI(Ethereum Contract ABI)
- 智能合约编程语言solidity的特性
- 『区块链智能合约』从零构建Ethereum智能合约到实战开发
- 『区块链智能合约』从零构建Ethereum智能合约到实战开发
- 【智能合约】Solidity
- 【以太坊】Ethereum: Smart Contract
- 以太坊智能合约solidity
- 『0008』- Solidity中public、internal、private在状态变量和函数中的使用以及Solidity智能合约继承、重写
- 以太坊智能合约 Solidity 的常用数据类型介绍
- 以太坊代币开发智能合约solidity的奥秘
- 开发智能合约的注意事项(以太坊-Ethereum)
- 『孔壹学院』以太坊(Ethereum)代币系统、智能合约开发实战课程
- 以太坊智能合约安全编程最佳实践smart-contract-best-practices
- 以太坊智能合约安全编程最佳实践smart-contract-best-practices
- bzoj5071 [Lydsy十月月赛]小A的数字
- HTML属性(input)
- 同步与异步,阻塞与非阻塞
- C语言 0-1背包问题
- jsp+servlet(3)
- 『0004』- 基于Ethereum Wallet的Solidity HelloWorld智能合约(Smart Contract)
- 冒泡排序
- jquery ajax请求成功,返回了数据,但是不进success的问题
- [BZOJ 4565][HAOI 2016] 字符合并 状压DP+区间DP
- 状态模式
- 找含有49的个数
- TensorFlow学习日记20
- RC4
- 『0005』- 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)