本文的目的是创建一个我们自己的支持ERC-20标准的代币。
一、关键词
Truffle
Truffle 是当前最活跃的 Ethereum 开发框架,具有调试、部署和测试智能合约等功能。此次建立加密代币的教程就是基于 Truffle 框架的开发。
ganache
在开发阶段需要测试,ganache 可以模拟智能合约所需要的以太坊区块链测试环境。
ganache 有桌面客户端以及命令行工具,本篇教程使用的是命令行工具搭配 Chrome 的 MetaMask 来进行测试。
OpenZeppelin
Zeppelin是一种构建安全智能合约的开源架构,我们使用OpenZeppelin函数库来创建一个简易发币合约。
二、环境配置
$ npm install -g truffle
$ npm install -g ganache-cli
三、初始化项目
$ mkdir coin-workspace
$ cd coin-workspace
$ truffle unbox tutorialtoken
在项目的根目录使用 npm 安装
$ npm install zeppelin-solidity
四、运行ganache
在我们部署智能合约之前,首先需要有一个以太坊区块链测试环境。新开一个命令行工具,输入以下命令:
$ ganache-cli
将会在本地生成以太坊区块链环境,会自动创建 10 个账号(Accounts),以及每个账号对应的私钥(Private Keys),每个账号中拥有 100 个测试用的以太币(Ether),我这里本地监听的端口是8454。
五、创建部署智能合约
1. 我们在contracts目录下新建一个 TutorialToken.sol 的文件(或者也可以用 truffle create contract TutorialToken.sol 命令来建立)。
写入以下内容:
+++++++++++++++++++++++++++++
pragma solidity ^0.4.2; // 指明目前使用的solidity版本,不同版本可能会编译出不同的bytecode
import 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol';
// contract 关键字类似于其它语言的class。可以理解为TutorialToken继承了Contract类,具有智能合约的特性。is 关键字类型于其它语言的extends,TutorialToken 继承了 StandardToken 的属性及方法。
contract TutorialToken is StandardToken {
string public name = 'DogToken'; // 设置代币名称
string public symbol = 'TT'; // 设置代币代号
uint8 public decimals = 2; // 设置代币最小交易单位(精度)
uint public INITIAL_SUPPLY = 10000; // 设置代币发行量
function TutorialToken() public {
totalSupply_ = INITIAL_SUPPLY;
balances[msg.sender] = INITIAL_SUPPLY;
}
}
+++++++++++++++++++++++++++++
2. 在 migrations/ 目录下,我们可以看到 truffle 框架提供了方便部署合约的脚本。接下来我们创建 2_deploy_contracts.js 的文件。
写入以下内容:
+++++++++++++++++++++++++++++
var TutorialToken = artifacts.require("TutorialToken");
module.exports = function(deployer) {
deployer.deploy(TutorialToken);
};
+++++++++++++++++++++++++++++
3. 修改项目根目录的truffle.js文件
+++++++++++++++++++++++++++++
module.exports = {
// See <http://truffleframework.com/docs/advanced/configuration>
// for more about customizing your Truffle configuration!
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
}
}
};
+++++++++++++++++++++++++++++
编译和部署智能合约
$ truffle compile
$ truffle migrate
六、安装及配置 MetaMask
MetaMask是一款在谷歌浏览器Chrome上使用的插件类型的以太坊钱包,该钱包不需要下载,只需要在谷歌浏览器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便。
具体安装请自行google
操作流程说明:
1. 安装好后连接本地运行的ganache服务(我是在远程服务器上运行的,然后通过nginx做了个代理)
2. 使用私匙导入功能导入两个ganache生成的账号
3. 然后可以在两个账号之间发送代币
发行的代币在两个自己注册的账号之间转账,需要支付手续费吗
@songtiejun ,需要 。
以太币转账
、token 转移
本质上都是在执行操作
, 而以太坊
上执行任何操作都需要支付gas
,而gas
的价格由矿工决定的,以以太币
进行支付手续费。谢谢楼主分享!推荐一个区块链新手入门的以太坊DApp开发教程:
http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180417steemit