以太坊区块链Truffle框架安装和使用
Truffle安装
本教程的要求是你要知道它是什么以及如何使用命令行工具,并且你要稍微熟悉 NPM,可查看官网文档。
Truffle
打开命令行窗口,并输入:
npm install -g truffle
如果出现错误,建议你多阅读有关 Truffle 的文档。
Truffle使用
truffle 项目的初始化
在终端窗口执行下面命令进行项目初始化:
truffle init
项目初始化后生成上面的目录结构,下面对文件结构作个简要的说明:
Contracts文件夹用来存放合约代码,Migrations.sol框架自带的合约代码,合约方便进行合约部署。合约的代码可以放在此文件下。
Migrations文件夹用来存放合约的部署脚本,默认包含部署Migrations.sol。每一个合约对应一个部署脚本。
Truffle-config.js用来配置网络的情况。可配置多个网络包括:测试网络,正式网络等。
Truffle.js windows在命令行环境,运行命令会默认打开这个文件,在windows环境可删掉。
Truffle框架常用的命令
以官网SimpleStorage.sol合约为例,合约的代码如下,把合约文件放在项目的contracts文件下面:
pragma solidity ^0.4.17;
contract SimpleStorage {
uint myVariable;
function set(uint x) public {
myVariable = x;
}
function get() constant public returns (uint) {
return myVariable;
}
}
在命令窗口,执行下面命令,编译合约:
truffle compile
项目的根目录下生成builds文件下如下图:
编译完成后,下一步我们需要部署合约了,为了演示方便,部署环境使用Truffle自带的测试环境truffle-config.js不需要调整:
然后,我们需要创建SimpleStorage合约的部署脚本,上文讲过,一个合约对应一个部署的脚本,命名为2_initial_migrations.js(脚本命名规则,如果有N个合约,脚本命名n_ initial_migrations.js),编写脚本的内容如下:
var SimpleStorage =artifacts.require("./SimpleStorage");
module.exports =function(deployer) {
deployer.deploy(SimpleStorage);
};
编写完成SimpleStorage合约部署脚本后,运行下面命令,进入控制台
truffle develop
控制台正常启动后,默认初始化10个账户,如下图:
正常启动控制台,执行下面命令即可部署合约到Truffle自带的测试环境:
migrate
控制台常用命令:
合约修改后,重新部署合约,而不需要退出控制台
migrate –reset
获取合约的实例:
var instance
SimpleStorage.deployed().then(function(i){instance=i;})
调用合约非交易方法SimpleStorage.get()
instance.get.call()
调用合约交易方法SimpleStorage.set()
instance.set(4)
debug交易,txid为交易的哈希值
debug txid
启动控制台日志信息
truffle develop --log