经过[手把手教你从源代码开始搭建多节点以太坊私链(二)搭建第一个节点]的操作,基本已经熟悉怎么去搭建好一个节点服务器了。在这个基础上, 多节点搭建并不复杂,按照下面的步骤就可以完成。
1. 使用相同的创世区块文件genesis.json
创世区块genesis.json文件内容如下:
{
2. 用创世纪区块json区块初始化节点
执行以下命令初始化各个节点。
geth --datadir /data/00 init genesis.json
3. 启动各个节点
执行以下命令启动各个节点。console参数表示启动后,启用命令行。 重要:节点编号要与创世文件中的chainId一致
#带geth命令行的方式启动 geth --networkid
4. 获取节点信息
#接入geth控制台 geth attach ipc:/data/00/geth.ipc # 获取节点信息 admin.nodeInfo.enode
节点信息如下:
格式是这样的: "ennode://< node public key >@[::]:< tcpport >?discport=< udpport >" 需要将[::]换成该节点电脑的公网IP地址。tcpport通常情况是30303,udpport通常可以设为30301,可能也可以不用。
5. 加入节点信息
加入节点信息有两种方式。 1. 通过命令行加入。
#接入geth控制台 admin.addPeer("ennode://< node public key >@[node ip address]:<tcpport>?discport=<udpport>")
根据实际操作经验,注意要开启挖矿,不然的话节点信息不能添加成功。
- 通过配置文件加入。这种情况下下需要重启geth。 在data/geth目录下,创建静态节点文件static-nodes.json,并将各个节点的node信息写入。
[
然后启动geth
100 --datadir /data/00 --rpc --rpcapi personal,db,eth,net,web3 console 2>>geth.log
6. 节点确认
在各个节点上进行测试:
#已连接的其他节点的个数 net.peerCount #返回其他节点的信息 admin.peers
然后从一个节点创建账户,开始挖矿,转账等各种操作,其它节点也会自动同步区块信息。
7 自己的多节点私链搭建总结
到目前为止,大家应该对以太坊私链的搭建有了比较完整的了解。连接过程中有几点需要注意:
(1)两节点要加入同一条私链,即这两个节点初始化的创世区块必须要一模一样。启动节点的时候要使用同样的networkid。也注意节点间是互通的。包括防火墙之类的问题要注意,如果端口被封肯定是无法连接上的。如果租用云服务器,要查看安全组里面相应的端口(rpc端口例如8545,节点互连端口例如30303)是否已经开放。
(2)A节点在添加B节点的enode字符串时需要手动将enode字符串中的ip地址设为B节点的IP地址。
(3)加入同一个私链之后,区块信息会完全同步,所有交易也是知道的。但是不同节点创建的账户,是互相看不到的。不过,他们的余额可以查到,转账交易也没有任何问题。
原文链接:https://blog.csdn.net/weixin_39587164/article/details/110364084
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/5984