搭建自己的EOS多节点测试主网

     最近RAM价格涨幅离谱,不过这种情况我在主网刚上线时的文章【你不懂的EOS收费细节】提到过。为了更好的了解RAM价格计算公式,我昨晚搭建了完整的测试主网。经过这段时间更新,感觉现在的EOS主网搭建过程还是非常便利的,于是整理了下,希望对大家有帮助。

    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多节点测试主网

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

搭建自己的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多节点测试主网

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

启动流程分析

搭建自己的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 0.0.0.0:8001 --p2p-listen-endpoint 0.0.0.0: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 regproducer your_account your_pub_key website_url      //注册为生产者

cleos system voteproducer prods your_account your_account           //投票

原文;https://blog.csdn.net/ITleaks/article/details/80888789