问题描述
我是新的区块链 目标:我想向已经运行的区块链中添加新节点。
正确,如果我在向网络添加节点时出错。两个节点应具有相同的起源块。 如果创世块的值不同,那么新设置的节点将无法从已运行的区块链中挖掘交易。
问题: 我没有gensis.json用于在新节点上创建相同的gensis块。
已尝试: 我尝试设置gensis块,但实时区块链gensis块的值与本地系统上的新设置不同。 通过连接到geth控制台并在控制台中运行以下命令进行检查。
admin.nodeInfo
因此,当我使用以下命令添加对等项时,它会返回true。
admin.addPeer("endoevaluefromec2instance")
当我在ec2实例上列出同级时,它显示计数为0。
0
注意:我能够使用web3模块连接到区块链,所以我不认为存在连接问题 问题:
解决方法
由于您可以访问现有节点并假定它们正在运行类似的客户端,因此您实际上可以将chaindata
文件夹复制到新节点,然后指定新节点的datadir
。
例如:
如果geth datadir文件夹位于/root/.ethereum
,则将整个chaindata
从现有节点复制到新节点。
如果您的新节点没有geth
文件目录,则可以复制../geth
目录而不是../geth/chaindata
。
然后使用这样的geth
参数运行--datadir
客户端
$ geth --datadir /root/.ethereum/
然后您可以admin.addPeer
,并且应该正确同步。