上回介绍了geth的安装,为了实战做准备的。若是本地开发调试Dapp的话ganache-cli是必不可少的。
ganache-cli是以太坊节点仿真器软件ganache的命令行版本,可以方便开发者快速进行以太坊DApp的开发与测试。
- 可以生成一组模拟账号
- 可以自动挖矿把交易记录到区块中
- 可以指定network
说说ganache-cli的安装和具体使用吧。
1、安装 node.js
Ubuntu 默认的 node.js版本太低了,装好了发现只有V12,truffle工具都跑不起来。果断先更新一下,ubuntu的sourcelist:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
然后再安装node.js
sudo apt update
sudo apt install nodejs npm
验证安装是否成功
node --version
npm --version
2、 安装ganache-cli
sudo npm install -g ganache-cli
3、启动ganache-cli
ganache-cli
4、命令参数
- -a 或 –accounts: 指定启动时要创建的测试账户数量。
- -e 或 –defaultBalanceEther: 分配给每个测试账户的ether数量,默认值为100。
- -b 或r –blockTime: 指定自动挖矿的blockTime,以秒为单位。默认值为0,表示不进行自动挖矿。
- -d 或 –deterministic: 基于预定的助记词(mnemonic)生成固定的测试账户地址。
- -n 或 –secure: 默认锁定所有测试账户,有利于进行第三方交易签名。
- -m 或 –mnemonic: 用于生成测试账户地址的助记词。
- -p 或 –port: 设置监听端口,默认值为8545。
- -h 或 –hostname: 设置监听主机,默认值同NodeJS的server.listen()。
- -s 或 –seed: 设置生成助记词的种子。.
- -g 或 –gasPrice: 设定Gas价格,默认值为20000000000。
- -l 或 –gasLimit: 设定Gas上限,默认值为90000。
- -f 或 –fork: 从一个运行中的以太坊节点客户端软件的指定区块分叉。输入值应当是该节点旳HTTP地址和端口,例如http://localhost:8545。 可选使用@标记来指定具体区块,例如:http://localhost:8545@1599200。
- -i 或 –networkId:指定网络id。默认值为当前时间,或使用所分叉链的网络id。
- –db: 设置保存链数据的目录。如果该路径中已经有链数据,ganache-cli将用它初始化链而不是重新创建。
- –debug:输出VM操作码,用于调试。
- –mem:输出ganache-cli内存使用统计信息,这将替代标准的输出信息。
- –noVMErrorsOnRPCResponse:不把失败的交易作为RCP错误发送。开启这个标志使错误报告方式兼容其他的节点客户端,例如geth和Parity。
–account参数示例
- 指定账户私钥和账户余额来创建初始测试账户。可多个账号固定private key、固定balance的账户,那么开发应用的时候就不用每次都重新配置account了。例如:
ganache-cli --account=\"0x5d6ea214095708295d27c31e46f8d99b17e3ee19ba3a12b76ede54ccd111c451,0x200000000000000000\" --account=\"0xb884be86c5961802bec605d56867e4bb5191bd1f42d7a2528e6a0739181c5845,0x200000000000000000\"
注意:balance的单位是wei
5、后台运行
如果想让ganache-cli类似后台服务那样的运行,搭配nohup命令一起使用即可。例如:
nohup ganache-cli --account=\"0x231e77c85c88793405bf9acc1904e2f8c40ceb27aaefc5962b7edc139dbec8e1,0x200000000000000000\" --account=\"0x7e8bab89b3bdfc5d9602c55ed78d502f65bb9b9e91cf43f368582d9d15329ed0,0x200000000000000000\" --account=\"0x063d4cc21db1ada7a7c64c643e3b0632a69b7687fe94f1a797a0f5e8d7090ce1,0x200000000000000000\" -l 90000000 -g 200000 -i 15 >> /home/ubuntu/dapp/ganache.log 2>&1 &