这是一篇 在window 下 搭建以太坊 测试服务 的学习笔记
mkdir /app/software/
cd /app/software/
wget https://npm.taobao.org/mirrors/node/v10.8.0/node-v10.8.0-linux-arm64.tar.xz
tar -C nodejs -xvf node-v10.8.0-linux-arm64.tar.xz
4、建立软连接,变为全局
$ ln -s /app/software/nodejs/bin/npm /usr/local/bin/
$ ln -s /app/software/nodejs/bin/node /usr/local/bin/
下载后检查版本
>node -v
配置npm源为国内源(可选,可加快 node 插件下载速度)
>npm config set registry http://registry.npm.taobao.org
安装
> npm install -g truffle
安装过程自动设置软链接
/usr/bin/truffle -> /usr/lib/node_modules/truffle/build/cli.bundled.js
测试环境每次启动 都是一组新的 用户,所有的测试合约都要发布,下面3种测试环境,你可以选择三个中任何一个客户端来跟truffle交互.
需要特别说明的是:
所有的测试框架每次启动后,都会在内存中重新生成临时用户,一旦关闭,所有用户以及部署过的合约都会消失.
> npm install -g ethereumjs-testrpc
> testrpc
#启动
ganache-cli 是内存测试环境,前身就是testRPC,命令版:
> npm install -g ganache-cli
> ganache-cli
#启动
window cmd 环境用 truffle.cmd xxxx
linux shell 环境用 truffle xxxx
Compile:truffle.cmd compile
(linux:truffle complie
)
Migrate:truffle.cmd migrate
Test contracts:truffle.cmd test
Run linter:npm run lint
Run dev server:npm run dev
Build for production:npm run build
一个是带图形界面的版本,下载地址:
https://github.com/trufflesuite/ganache/releases
这个是truffle内置的客户端,跟命令行版本的Ganache基本类似。唯一要注意的是在truffle develop里执行truffle命令的时候需要省略前面的“truffle”,比如“truffle compile”只需要敲“compile”就可以了。
> truffle develop
> mkdir 目录名 # 新建目录
> cd 目录 #进入目录
有两种方法初始化框架 init 或者 unbox指令格式如下
> truffle init
#在当前目录下,创建一个空项目
> truffle unbox webpack
#在当前目录下,创建示例项目
主要分为3个部分:
1) contracts目录中包含Solidity合约代码,整个目录被编译,其中Migrations.sol是默认的,必须的,其他就是你自己写的合约代码了。
2) migrations目录中包含合约部署脚本, 整个目录被编译,其中1_initial_migration.js就是用来部署Migrations.sol的,其他的脚本 最好从2开始编号, 会按照顺序依次执行。
3) test目录中存放的是测试用例的代码。
3.1. 更改truffle.js 文件配置
module.exports = {
networks: {
development: {
host: 'localhost',
port: '7545',
network_id: '*' // Match any network id
}
}
};
这里要注意的是:
Ganache默认运行在8545端口
Ethereumjs-testrpc 默认运行在8545端口 Truffle Develop
默认运行在9545端口
3.2. 编译合约
truffle框架里已经给我们提供了demo代码,我们暂时不用写新的合约,我们直接用demo进行编译和部署。
输入命令:
> truffle.cmd compile
#window下
> truffle compile
#linux下
3.3. 部署合约
部署合约之前,请开启之前下载的以太坊客户端:
Ganache:请打开下载的软件,或者在命令行中输入 > ganache-cli #启动
Ethereumjs-testrpc:在终端输入> testrpc
命令,以出现测试账号为成功,不要关闭,打开新的终端窗口进行下一步。
Truffle Develop:在终端输入 > truffle develop
命令,以出现测试账号为成功,可直接在此窗口进行下一步。
开启客户端之后再输入命令:
> truffle.cmd migrate
#window下
> truffle migrate
#linux下
> npm run dev
1.git下载
> git clone https://github.com/trufflesuite/ganache-cli.git&& cd ganache-cli
> docker build -t trufflesuite/ganache-cli
2. 运行镜像
> docker run -d -p 8545:8545 trufflesuite/ganache-cli:latest
虽然现在很多教程都是truffle和Ethereumjs-testrpc配合,但truffle官方推荐的是Ganache,所以建议用Ganache,文档会新一点。