全面理解EOS——2.加入EOS主网和测试网

有了EOSIO软件,如何加入EOS的主网及测试网络?不同步EOS主网和测试网络全部数据,如何快速与EOS主网及测试网交互?如果想获得EOS主网及测试网络上所有的块信息,又该如何?

在线查看EOS网络信息

如果仅是想查看EOS主网和测试网络上的部分信息,区块浏览器直接可用
主网:
Jungle Mainnet:http://eosnetworkmonitor.io/#home
EOSTEA : https://eosmonitor.io/
EOSpark: https://eospark.com/
测试网:
Jungle Testnet:http://jungle.cryptolions.io/
EOSTEA:https://party.eosmonitor.io/
下面测试几个例子:
1.查看账号信息(支持API接口):
这里写图片描述
2.查看块信息
这里写图片描述
3.免费获取测试EOS(测试网上)
这里写图片描述
一般的查看和交互已经足够了。

与远端RPC节点交互

按照全面理解EOS——1.源码编译及运行中的内容,已经编译完成了EOSIO软件,得到了cleos等程序,而且,可以直接在本地测试单节点网络。如果想连接到主网或者测试网络,需要找到其他人提供的远端RPC节点地址(注意不是P2P地址)。
主网:
EOS New York: https://api.eosnewyork.io
eos DAC: https://eu2.eosdac.io
具体的操作和单节点测试网络下使用cleos是类似的,只是多加了个参数:
首先切换到build/cleos下

./cleos -u "https://eu2.eosdac.io" get info

结果如图:
这里写图片描述
注意看
chain_id:”aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906”
证明你连接的是主网。

与本地节点交互连接EOS网络

此种方法是最麻烦的,因为通过nodes软件将EOS链上的数据都同步到了本地。
主网:
使用Jungle Mainnet封装好的工具,编译后同步数据,使用cleos。
按照链接https://github.com/CryptoLions/EOS-MainNet中的步骤,同步并编译代码,然后修改相关配置即可。同步数据的时间较长。下面以Ubuntu环境为例:
1.同步代码及编译

mkdir /home/eos-sources  
cd /home/eos-sources  

git clone https://github.com/EOS-Mainnet/eos.git --recursive    
cd eos  

git checkout mainnet-1.0.5  
git submodule update --init --recursive   

./eosio_build.sh

2.配置节点

mkdir /opt/EOSmainNet
cd /opt/EOSmainNet
git clone https://github.com/CryptoLions/EOS-MainNet.git ./ 
chmod +x ./*.sh   
chmod +x ./Wallet/*.sh 

3.修改config.ini文件
修改EOSmainNet目录下的config.ini文件,下面是我修改后的,供参考

  • producer-name = mainnet.test
  • p2p-server-address = 0.0.0.0:9876
  • signature-provider = EOS公钥地址:对应私钥地址
  • p2p地址列表,可从https://eosnodes.privex.io/?config=1中获取

3.自定义目录
如果想修改诸如/home/eos-sources目录和链上数据存储目录data-dir,可在/opt/EOSmainNet(这个目录也可以修改)中修改各个.sh文件对应的信息。

4.启动节点并同步数据
执行start.sh之后,使用tail -f stderr.txt,查看同步数据的进度信息

如果想使用前面已经编译好的EOSIO软件
切换到build/eos/nodeos目录,拷贝上述Jungle Mainnet的genesis.json文件和config.ini文件到当前目录,对config.ini的修改同上,然后执行

nodeos --data-dir $DATADIR --config-dir $DATADIR

data-dir是区块链数据存储的目录,不设置的话有默认目录,之前编译文章里有。config-dir是config.ini的目录,包括genesis.json文件,由它决定了chain_id,即你连接的是否是主网
测试网的步骤类似,Jungle Testnet代码地址:
https://github.com/CryptoLions/EOS-Jungle-Testnet

常见问题

1.nodeos崩溃
测试Jungle Testnet出现nodeos崩溃,再启动时提示,database dirty flag set (likely due to unclean shutdown): replay required

修改nodeos的启动脚本,添加
–replay-blockchain –hard-replay-blockchain
之前的–resync-blockchain 参数已被删除

特别注意成功启动之后一定要删除
–replay-blockchain –hard-replay-blockchain这两个配置,不然重启还会replay一遍。
2.config-dir不生效
启动节点是遇到
2412694ms thread-0 chain_plugin.cpp:208 plugin_initialize ] initializing chain plugin
2412695ms thread-0 main.cpp:113 main ] 10 assert_exception: Assert Exception
version > 0: Block log was not setup properly with genesis information.
{}
thread-0 block_log.cpp:473 extract_genesis_state

不知道为何start.sh中的–config-dir没有起作用,
重新添加–genesis-json genesis.json –config config.ini
注意节点成功启动后,还得删除genesis配置参数,否则出现如下错误:
!fc::exists( my->blocks_dir / “blocks.log” ): Genesis state can only be set on a fresh blockchain
说明配置了genesis.json,但是blocks目录不为空
需要清除blocks或者去除genesis的配置
3.注意地址占用问题
如果编译使用了多个版本的EOSIO软件,特别注意上述config.ini配置文件的服务器地址端口等,避免相互之间占用冲突(Address already in use)

转载请注明出处:http://blog.csdn.net/w7849516230,欢迎关注微信公众号“编程阳光”
扫码关注

猜你喜欢

转载自blog.csdn.net/w7849516230/article/details/80809329