环境
操作系统:WIN7
NodeJS:5.0+版本
前言
对于以太坊的开发,主要分三块:客户端的开发、智能合约的开发、底层开发。一般我们涉及的是智能合约和客户端的开发。客户端的开发可以使用NodeJS编程语言或者上篇文章提到的web3.js,智能合约的开发使用Solidity编程语言。
本文主要介绍如何使用Truffle框架开发一个以太坊应用。Truffle是一个开发以太坊客户端和智能合约的框架,包括对NodeJS和Solidity的整合,轻松实现对以太坊客户端的调用。
对于开发人员来说,以太坊客户端一般使用EthereumJS TestRPC,而不是直接连到生产环境(那样比较慢)。TestRPC是基于本机内存的客户端,速度快,适合开发使用。所以我们还需要安装TestRPC客户端软件。
Truffle网站:http://truffleframework.com/docs/
Solidity网站:https://solidity.readthedocs.io/en/latest/solidity-by-example.html
一、软件安装
需要使用npm命令。npm包的安装最好安装在全局环境中,这样就不需要重新配置环境变量。(我的个人习惯是在nodejs安装目录中执行npm命令)
1.1 安装Ethereum TestRPC
》 npm install -g ethereumjs-testrpc
没有Error就表示安装成功了!(比较简单)
1.2 安装Truffle
》npm install -g truffle
安装成功之后,使用truffle -v 查看版本号(注:truffle的版本更新比较快)
二、创建和初始化应用
软件已经安装完成,可以创建一个以太坊应用了。官方提供了一个metacoin项目,包括了JS代码和合约代码。我们可以下载下来参考。
2.1 创建应用
先创建一个目录(工作空间),比如:D://workspaceMetaCoin
CMD中下载demo:
》cd D://workspaceMetaCoin
》mkdir metacoin
》cd metacoin
》truffle unbox metacoin
如果想自己创建,这样操作:
》cd D://workspaceMetaCoin
》mkdir mymetacoin
》truffle init
无论是下载demo还是自己创建,应用的目录结构都是这样的:
build:编译完成之后生成的js文件
contracts:智能合约文件
migrations:部署用到的脚本
test : 测试文件
truffle.js : 配置文件,配置文件的内容参考文件中提供的链接,直接拷贝替换即可!
(truffle 在 2.1.1 之前,会有web应用app目录;)
2.2 编译应用
编译应用,主要编译智能合约代码
》truffle.cmd compile
编译智能合约,变成可以执行的js,放到build中。
这里要注意的是,Windows必须使用truffle.cmd (Linux 和 MacOS可以使用命令 truffle compile)
2.3 部署项目和运行
启动两个终端:一个启动TestRPC,另外一个部署和运行合约。
终端1
》testrpc //启动testrpc
终端2
》truffle.cmd migrate //truffle的部署
》truffle.cmd test //测试转账
终端二中的交易信息,在终端一的log中可以看到!
后记
按照文章操作,只要仔细一些,应该是没有问题的。对于JS和.sol合约的代码,在后面的教程中再给大家详细解读!
遇到的问题
1、编译的时候如果truffle.js为空
参考:http://truffleframework.com/docs/advanced/configuration
拷贝进去即可!
2、如果遇到这个错误:typeerror fsevents is not a constructor truffle windows
参考:https://github.com/trufflesuite/truffle/issues/734
修改truffle编译后的文件:
node_modules/truffle/build/cli.bundled.js