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个普通用户


如果怕麻烦,大家可以在下面的连接下载这两个文件然后覆盖

执行启动命令

执行之前需要安装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

      上面的蓝色字体请填入你的账号,如没有可以在这里申请测试账号:
          http://testnet.eosfavor.com
      创建之前必须拥有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互助社区:Eosfavor.com, 免费购买EOS CPU,创建账号

EOS技术交流群,EOS开发群,以太坊技术群:787804520


猜你喜欢

转载自blog.csdn.net/itleaks/article/details/80888789