Eos测试环境搭建主要参考EOS官网,分别是单节点环境和多节点环境。
https://developers.eos.io/eosio-nodeos/docs/local-single-node-testnet
https://developers.eos.io/eosio-nodeos/docs/local-multi-node-testnet
当然你也可以使用docker的单节点环境。
https://developers.eos.io/eosio-nodeos/docs/docker-quickstart
docker环境搭建比较简单,这里就不描述了。
单节点环境搭建
下载源代码
EOS的源代码
git clone https://github.com/EOSIO/eos --recursive
编译源代码
如果想编译指定版本
如指定编译1.0.0版本,使用如下命令:
#git checkout –b xxxy v1.0.0
编译脚本在EOS目录,直接运行即可自动安装编译环境。并完成编译
./eosio_build.sh
安装
./eosio_install.sh
编译开发合约的工具链
获取源代码
$ git clone --recursive https://github.com/eosio/eosio.cdt
$ cd eosio.cdt
$ ./build.sh
$ sudo ./install.sh
获取系统合约
系统合约在下载源代码时,已经有一部分,单最新系统是单独的子目录。用如下命令获取。
$ git clone –recursive https://github.com/EOSIO/eosio.contracts.cdt
单节点测试环境
启动nodeos
./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin
启动后,可以在屏幕上看到可以出块了。
默认的配置文件在
~/.local/share/eosio/nodeos/config
你也可以在运行时指定目录。
测试命令
以下命令基本可以创建账户,测试nodos是否能够满足开发需求。
1.创建钱包
cleos wallet create --to-console
2. 产生新的key
cleos create key --to-console
如产生key为:
5J4igmpzdpeeWgQECfizsHvVN5hYz3sUN7t5BpW1DpRwxvjkF5U
3.导入key
cleos wallet import 5J4igmpzdpeeWgQECfizsHvVN5hYz3sUN7t5BpW1DpRwxvjkF5U
4.导入系统账户的key
cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
该key在默认配置文件中,可以修改。
5.创建测试账户
cleos create account eosio bob EOS7YS7HokxByKCvZPBWUAe9LUusCoVzRPkTiv9yT2DtBU1LcEYFf
cleos create account eosio alice EOS7YS7HokxByKCvZPBWUAe9LUusCoVzRPkTiv9yT2DtBU1LcEYFf
6.导入token合约
合约在源代码目录
Cd eos/src/build/contracts
cleos set contract alice eosio.token -p alice
7.发行货币
cleos push action alice create '["alice", "1000000000.0000 CC"]' -p alice@active
8.给某人发行100000000.0000 CC
cleos push action alice issue '[ "alice", "100000000.0000 CC", "memo" ]' -p alice@active
9.转账
cleos push action alice transfer '["alice", "bob", "1.0000 CC", "m" ]' -p alice@active
搭建多节点测试环境
前几个步骤相当于,把单节点环境的步骤执行一遍。
下面步骤在单个节点上,搭建多个nodeos节点。
- 启动一个钱包管理服务
keosd --http-server-address 127.0.0.1:8899
- 创建钱包
cleos --wallet-url http://127.0.0.1:8899 wallet create --to-console
- 导入eosio系统用户的key
cleos --wallet-url http://127.0.0.1:8899 wallet import --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
- 启动第一个节点,该节点为“搭建单节点测试环境”的节点。
nodeos --enable-stale-production --producer-name eosio --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin
- 设置系统合约
cleos --wallet-url http://127.0.0.1:8899 set contract eosio build/contracts/eosio.bios
- 为生产者用户(比如inita用户)生产key
Cleos create key
- 导入新产生的key
cleos --wallet-url http://127.0.0.1:8899 wallet import xxxxxxx
- 创建生产者用户
cleos --wallet-url http://127.0.0.1:8899 create account eosio inita xxx yyy
- 启动第二个节点
nodeos --producer-name inita --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --http-server-address 127.0.0.1:8889 --p2p-listen-endpoint 127.0.0.1:9877 --p2p-peer-address 127.0.0.1:9876 --config-dir node2 --data-dir node2 --private-key [\"EOS6hMjoWRF2L8x9YpeqtUEcsDKAyxSuM1APicxgRU1E3oyV5sDEg\",\"5JgbL2ZnoEAhTudReWH1RnMuQS6DBeLZt4ucV6t8aymVEuYg7sr\"]
- 授权第二个节点的生产者
cleos --wallet-url http://127.0.0.1:8899 push action eosio setprods "{ \"schedule\": [{\"producer_name\": \"inita\",\"block_signing_key\": \"EOS6hMjoWRF2L8x9YpeqtUEcsDKAyxSuM1APicxgRU1E3oyV5sDEg\"}]}" -p eosio@active
- 查看第一个节点的状态
cleos get info
- 查看第二个节点的状态
cleos --url http://127.0.0.1:8889 get info