EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)
昨晚在细看ram消耗的问题时候,搭建了完整的测试主网,经过更新,发现现在的搭建过程还是很便利的,于是刚刚整理了下,希望对大家有帮助。
EOS dawn-v4.1.0版本开始就有EOS主网启动教程项目了,在tutorials/bios-boot-tutorial目录。EOS主网启动流程的操作步骤都在tutorials/bios-boot-tutorial/bios-boot-tutorial.py文件里。创建一个私有主网,只需执行一个bios-boot-tutorial.py程序即可。这里我叫做“测试主网”是因为里面的规则内容和主网一模一样,只是账号信息是虚拟的。
一键启动私有测试主网
下载源码并编译
git clone https://github.com/eosio/eos --recursive
cd eos
git checkout v1.0.7
git submodule update --init --recursive
//将系统币修改为EOS
sed -i.bak '16i set( CORE_SYMBOL_NAME "EOS" )' CMakeLists.txt
./eosio_build.sh
更详细操作过程请参考【https://blog.csdn.net/itleaks/article/details/80367131】
执行主网启动脚本
由于我们的机器和真正的BP性能有差距,导致执行的过程中会出错, 因而需要对bios-boot-tutorial.py做一些修改。具体改动如下
同时为了减少环境搭建时间及方便实践,我删减了accounts.json文件里的账号,只保留2个生产者和3个普通用户
如果怕麻烦,大家可以在下面的连接下载这两个文件然后覆盖
https://github.com/itleaks/eos-contract/blob/master/files/bios-boot-tutorial.py
https://github.com/itleaks/eos-contract/blob/master/files/genesis.json
执行启动命令
执行之前需要安装python和python numpy库,具体安装过程请网络搜索
./bios-boot-tutorial.py -a --num-producers-vote=2 --num-voters=3 --num-senders=3 --producer-sync-delay=20 --symbol=EOS --max-unstaked=2000000
上面命令执行过程中如有出错,可以尝试几次,因为本地机器的CPU等资源负载很高时,会导致执行timeout
等待该程序执行完成退出即可
$ ls nodes/
00-eosio 01-eosfavor2bpa 02-eosfavor2bpb
然后查看三个节点程序中任一一个节点的数据,比如00-eosio即最初始节点的log信息
从上面看出,开始时eosio生成,投票完成后eosfavor2bpa, eosfavor2bpb这两个生产者轮流生产区块。
启动流程分析
想要更清晰的了解这些流程,可以查看bios-boot-tutorial.py文件, 想查看每一条命令的详情,可以查看output.log文件(命令执行日志)
我的测试主网testnet.eosfavor.com
一般来说,通过上面的描述,大家都有了自己的测试主网,可以做任何EOS测试的事。但是有些伙伴可能觉得本地机器不方便或者觉得整个过程太麻烦,可以直接使用第三方的测试主网。其实已经有一些测试网络了,比如"Jungle Testnet Monitor",但是最近貌似出了问题。因此为了方便大家实践,同时为了这个网络的稳定性,我的这个测试主网已经开放,欢迎大家一起实践。大家可以通过两种方式参与。
1)DAPP开发人员或者EOS常规命令使用者
这些伙伴可直接通过ip:port方式连接我的nodeos服务即可,比如
cleos -u http://testnet.eosfavor.com:8001 get info
2) EOS源码研究,系统功能(区块浏览器)等开发人员
这些伙伴可使用如下命令连接到我们的EOS测试网络,成为区块生产者
nodeos --max-irreversible-block-age 18999999 --contracts-console --genesis-json eos/tutorials/bios-boot-tutorial/genesis.json --data-dir ./nodes --http-server-address 127.0.0.1:8001 --p2p-listen-endpoint 127.0.0.1:9001 --max-clients 12 --p2p-max-nodes-per-host 12 --enable-stale-production --producer-name producer111a --private-key '["EOS8imf2TDq6FKtLZ8mvXPWcd6EF2rQwo8zKdLNzsbU9EiMStxxxx","5KLGj1HGRWbk5xNmoKfrcrQHXvcVJBPdAckoiJgFftXSJjLPxx"]' --plugin eosio::http_plugin --plugin eosio::chain_api_plugin --max-transaction-time=3000 --plugin eosio::producer_plugin --p2p-peer-address testnet.eosfavor.com:9001
上面的蓝色字体请填入你的账号,如没有可以在这里申请测试账号:
创建之前必须拥有EOS公私钥,如果没有,可以通过如下命令创建
cleos create key
上面红色字体,请填入上面账号授权的EOS公私钥
运行nodes后,然后就可以通过注册生产者和投票工具将自己投为生产者
cleos system newaccount eosfavor2u11 --transfer testtesttest your_pub_key --stake-net "10.0000 EOS" --stake-cpu "100.0000 EOS" --buy-ram "10 EOS" //创建新账号
cleos system regproducer your_account your_pub_key website_url //注册为生产者
cleos system voteproducer prods your_account your_account //投票
更多信息大家请访问testnet.eosfavor.com
/********************************
* 本文来自CSDN博主"爱踢门"
* 转载请标明出处:http://blog.csdn.net/itleaks
******************************************/
EOS生态以太坊侧链(ethsidechain)代币'EETH'免费发放中,详情请访问eosfavor.com
EOS互助社区:Eosfavor.com, 免费购买EOS CPU,创建账号
EOS技术交流群,EOS开发群,以太坊技术群:829789117