2.区块链—部署智能合约,创建数字货币
官网的全英文档看得脑袋疼,所以在成功后我从新整理了一下思路。
实现代币的过程是编写智能合约的过程,当满足设定的条件时会自动执行事件,这个合约可以百度查一下。今天部署的是一个包含基本功能的合约,高级合约代码可在底部查看。
开始之前需要之前搭建的私链,并且有挖到的以太币,因为部署合约需要消耗以太币。
1.开启私链节点:
2.打开geth客户端:
3.点击右上角contracts(合约)打开部署合约:
4.点击部署新的合约:
合约代码:
pragma solidity 0.4.16; //(编译版本声明)
/* contract 类似面向对象中的类 */
contract MyToken
{
/* 设置一个数组存储每个账户的代币信息 */
mapping (address => uint256) public balanceOf;
/* 设置变量 */
/*1. name 代币名称 */
/* 2.symbol 代币图标 */
/* 3.decimals 代币小数点位数 */
string public name;string public symbol;uint8 public decimals;
/* event事件,它的作用是提醒客户端发生了这个事件,你会注意到钱包有时候会在右下角弹出信息 */
event Transfer(address indexed from, address indexed to, uint256 value);
/* 下面这个类似于C++的构造函数,接收用户输入,实现代币的初始化 */
function MyToken(uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol) {
balanceOf[msg.sender] = initialSupply; // Give the creator all initial
name = tokenName; // 设置代币名称
symbol = tokenSymbol; // 设置代币的符号
decimals = decimalUnits; //显示的小数点
}
/* 代币交易的函数 */
function transfer(address _to, uint256 _value)
{
/* 检查发送方有没有足够的代币 */
if (balanceOf[msg.sender] < _value || balanceOf[_to] + _value < balanceOf[_to]) revert();
/* 交易过程,发送方减去代币,接收方增加代币 */
balanceOf[msg.sender] -= _value;balanceOf[_to] += _value;
/* 提醒客户端发生了交易事件 */
Transfer(msg.sender, _to, _value);
}
}
5.在左边的弹出的设置中填写数字货币信息:
6.点击下面的deploy按钮 进行部署:
7.在弹出的合约确定框中填写自己的以太坊账户密码,然后点击send
transaction按钮发送办理:
PS:此处的密码为当初创建账户的时候
personal.newAccount("密码") //中的密码
8.通常几分钟内合约就验证通过,可以在以太坊钱包“CONTRACTS”页面看到我们建立的测试代币。
高级合约代码:
https://ethereum.org/token