以太坊区块链Truffle框架安装和使用

Truffle安装
本教程的要求是你要知道它是什么以及如何使用命令行工具,并且你要稍微熟悉 NPM,可查看官网文档。
Truffle
打开命令行窗口,并输入:

npm install -g truffle

如果出现错误,建议你多阅读有关 Truffle 的文档。
【以太坊区块链Truffle框架安装和使用】Truffle使用
truffle 项目的初始化
在终端窗口执行下面命令进行项目初始化:
truffle init

以太坊区块链Truffle框架安装和使用
文章图片

项目初始化后生成上面的目录结构,下面对文件结构作个简要的说明:
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自带的测试环境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框架安装和使用
文章图片

正常启动控制台,执行下面命令即可部署合约到Truffle自带的测试环境:
migrate

以太坊区块链Truffle框架安装和使用
文章图片


控制台常用命令:
合约修改后,重新部署合约,而不需要退出控制台
migrate –reset

获取合约的实例:
var instance SimpleStorage.deployed().then(function(i){instance=i; })

调用合约非交易方法SimpleStorage.get()
instance.get.call()

调用合约交易方法SimpleStorage.set()
instance.set(4)

debug交易,txid为交易的哈希值
debugtxid

启动控制台日志信息
truffle develop --log


    推荐阅读