一.系统环境
- Ubuntu 16.04 操作系统
二. 安装命令
安装nodejs
- 更新ubuntu软件源
sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
- 安装nodejs
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm
- 更新npm的包镜像源,方便快速下载
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list
- 全局安装n管理器(用于管理nodejs版本)
sudo npm install n -g
- 安装最新的nodejs(stable版本)
sudo n stable
sudo node -v
安装npm 工具
打开Terminal,输入$ sudo apt-get install npm
安装Truffle
Truffle是针对基于以太坊的Solidity语言的一套开发框架。本身基于Javascript。
官方文档:http://truffleframework.com/docs/
输入sudo npm -g install truffle
, 安装Truffle。
安装Ethereum TestRPC
输入sudo npm install -g ethereumjs-testrpc
测试结果
输入testrpc
,得到如下结果
三.选择以太坊客户端
我们需要安装Ethereum客户端来支持JSON RPC API的调用。
- Ethereum客户端的选择有很多,我大概列一下本地开发可以使用:Ganache、Ethereumjs-testrpc、以及truffle自带的Truffle Develop,只需要用其中一种就好了。
- Ganache的安装,可以在 http://truffleframework.com/ganache/ 直接下载安装。
四 .创建一个项目
新建开发目录dapp. 打开一个新的命令窗口。进入到dapp目录。
初始化项目
执行truffle unbox webpack
,
执行以上命令之后,dapp文件夹内会自动生成开发所需要的目录结构:
- contracts/:Solidity职能合约目录
- migrations/:部署用到的脚本
- test/:用于测试应用程序和合约的测试文件目录
- truffle.js:配置文件
- app:前端代码目录
目录里默认生成一个MetaCoin的demo,可以研究下 的代码,了解网页与合约的交互实现。
编译合约
truffle框架里已经给我们提供了demo代码,我们暂时不用写新的合约,我们直接用demo进行编译和部署。
运行truffle compile
,出现如下错误。
解决方法:
安装sudo npm install babel-core
。
再次运行truffle compile
命令。
编译成功的话,你会在dapp的项目文件夹里发现多个一个build的文件夹。
部署合约
部署合约之前,请开启之前下载的以太坊客户端:
Ganache:请打开下载的软件
Ethereumjs-testrpc:在终端执行testrpc命令,以出现测试账号为成功,不要关闭,打开新的终端窗口进行下一步。
Truffle Develop:在终端执行 truffle develop 命令,以出现测试账号为成功,可直接在此窗口进行下一步。
开启客户端之后再输入命令:
$ truffle migrate
执行成功,会出现以下界面: