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做一些修改。具体改动如下

EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)

 

同时为了减少环境搭建时间及方便实践,我删减了accounts.json文件里的账号,只保留2个生产者和3个普通用户

 

EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)

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

    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信息

 

EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)

    从上面看出,开始时eosio生成,投票完成后eosfavor2bpa, eosfavor2bpb这两个生产者轮流生产区块。

 

启动流程分析

EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)

    想要更清晰的了解这些流程,可以查看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生态以太坊侧链(ethsidechain)代币'EETH'免费发放中,详情请访问eosfavor.com

EOS互助社区:Eosfavor.com, 免费购买EOS CPU,创建账号

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

EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)

EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)