1)安装
1.1) 安装VMware
1.2) 在VMware上创建Ubuntu17.10(64bit)的镜像(目前17.xx版本比较稳定),今后根据情况追加
根据EOS3.0 的要求注意选择以下spec:
_CPU X 2
_Memory 虚拟内存 8G
_虚拟硬盘 40G
网络模式选择NAT,这样就可以用主机的IP地址,直接可以access internet
1.3) 从git 下载EOS source:
git clone https://github.com/eosio/eos --recursive
1.4) 编译:
cd eos
./eosio_build.sh
到此为止比较顺利。
2) 单节点启动:
cd ~/build/programs/nodeos
./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin
此处如果出现 database dirty flag set (likely due to unclean shutdown) replay or resync required 的错误,加上 --resync-blockchain 参数
./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin --resync-blockchain
此处平均1ms 出2-3个块,一个块包含500交易(目前没有交易记录),因此计算下来1000TPS
3) 单机多节点模式:
在~/opt 目录下创建
cd ~/opt
mkdir mainnode
cd mainnode
cp ~/build/programs/nodeos/nodeos/config/. .
(config.ini and genesis.json)
vi config.ini
change:
enable-stale-production = true (original: false)
启动出块节点:
nohup nodeos -d ~/eos.data/producer_node --config-dir ~/eos.data/producer_node -l ~/eos.data/logging.json --http-server-address "" -p eosio -e > bpnode.log &
启动非出块节点:
nohup nodeos -d ~/eos.data/generator_node --config-dir ~/eos.data/generator_node -l ~/eos.data/logging.json --plugin eosio::txn_test_gen_plugin --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --p2p-peer-address localhost:9876 --p2p-listen-endpoint localhost:5555 > nonbp.log &
*启动后台运行模式
加图对比一下不出块的节点日志:
加载智能合约:
cleos wallet create
如果钱包创建之后没有保存Key,用此命令查询:
cleos wallet keys
cleos set contract eosio ~/eos/build/contracts/eosio.bios/
初始化txn_test_gen_plugin插件
curl --data-binary '["eosio", "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]' http://localhost:8888/v1/txn_test_gen/create_test_accounts
运行命令,施加压力
curl --data-binary '["", 20, 20]' http://localhost:8888/v1/txn_test_gen/start_generation
top查看CPU运行:
其中,为了查看CPU, 安装glances:
结论: 单机版和官方文档介绍基本一致,在1000TPS左右。