Ethereum智能合约开发之Token部署

王子叶
王子叶 2018-05-17 10:38
2 7119
作者:佚名
来源:搜狐科技
原文链接:http://www.sohu.com/a/130680500_104036
著权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Mist 中的合约页面
点击Mist页面中的Contracts,可以看到合约页面
点击按钮 Deploy New Contract按钮,可以部署一个新的合约,我们点击该按钮, 会看到的上方界面如下:
在From中我们可以选择一个账户,Main Account/account 1, 选择哪个账户,那么那个账户就是该合约的创建者。
那么在构造函数中的msg.sender也就是谁,而同样的变量owner也就是那个账户的地址。contract Token { ... address public owner; function Token() { owner = msg.sender; ... }
Amount这里指的是支付给该智能合约的以太币,之前说过,在以太坊中的架构中,智能合约被看作一个特殊的账户,因此智能合约也能和其他账户一样进行交易,可以接受以太币,也可以付出以太币。
这样的特性,在我们的金融化应用中非常有用,例如众筹合约等。当然目前是一个代币合约,因此这里不需要给智能合约支付任何以太币。
Mist下半部分界面
在代码界面,我们贴上下方的代码,
pragma solidity 0.4.8; contract Token { mapping (address => uint) public balancesOf; address public owner; function Token() { owner = msg.sender; balancesOf[msg.sender] = 10000; } function transfer(address _to, uint _value) { if (balancesOf[msg.sender] < _value) throw; //避免转移出去的代币超过当前的存货 if (balancesOf[_to] + _value < balancesOf[_to]) throw; //避免自己调用自己,或者递归调用 balancesOf[msg.sender] -= _value; balancesOf[_to] += _value; } function mint(uint _amount) { balancesOf[owner] += _amount; } }
所看到的结果如下:
如上图中2所示,只要我们将合约代码贴上去,如果编译通过的话,我们就会看到Mist自动读取出来了我们需要Deploy的合约名称。即Contract Token. 注意:合约的首字母需要为大写,尤其是在多个合约的时候,程序会优先认为首字母为大写的是主合约
如上图3中所示,我们可以设置合约的部署速度。之前说过合约是一个特殊账户,而任何账户之间的transaction都需要消耗Gas, Gas由合约本身决定,而每百万gas的以太币则由Oracle来决定,价格越贵速度越快优先级越高,价格越便宜速度越慢优先级越低。消耗Gas就是消耗以太币,因此用任何账户来部署合约,都必须要输入密码。 以上概念都是重复之前所说的,之后不再复述
Deploy页面解析
点击下方的Deploy按钮,我们可以看到弹出的这个页面
合约是特殊的账户,deploy合约在以太坊底层就是一个账户到另一个账户的一个Transaction记得一定要修改下Provide maximum fee 里面的Gas数量。因为一个合约除了部署之外,还需要执行构造函数,并部署数据,Gas不足的话,会导致部署失败。
Raw Data就是合约代码的编译后的bytecode, 输入密码,并点击Send Transaction 便可完成合约部署
部署完毕后的合约页面是这样的
为什么合约没有第一时间出来呢,因为任何合约是一个特殊账户,任何特殊账户之间的Transaction都需要挖矿挖出来,并得到各个区块的确认。
过了一段时间之后,我们可以看到合约出现了。
至此我们已经完成了合约的部署。
文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。
<p>
2条回应 最新 最早
张旭如
沙发# 张旭如 2018-05-17 10:44
本文把“去中心化”所描述的主体缩小到了特定的Bitcoin,而实际整体的“虚拟货币”世界显然是去中心化的。即便具体到当前的Bitcoin,“分叉”本身的存在即说明了去中心化的存在。
滴水。。。
板凳# 滴水。。。 2018-05-17 10:45
基于区块链技术的数字货币,本身当然具有一定的价值,但这种价值建立在其指代的现实标的物上。数字货币与其所指代的现实标的物价值合一,才能与现实经济生活融为一体。
游客
登录后才可以回帖,登录 或者 注册