多个节点搭建以太坊私有链(两台电脑测试)

在这之前,要先会在一台电脑上搭建一条私有链:链接

假设两台电脑A和B,ip地址分别为192.168.1.1和192.168.1.2

要求:

1、两台电脑要在一个网络中,能ping通

2、两个节点使用相同的创世区块文件

3、禁用ipc;同时使用参数--nodiscover

4、networkid要相同,端口号可以不同

这里两个节点都使用这个创世区块文件:

{  
  "config":{  
    "chainId":15,  
    "homesteadBlock":0,  
    "eip155Block":0,  
    "eip158Block":0  
  },  
  "nonce": "0x0000000000000042",  
  "timestamp": "0x00",  
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",  
  "extraData": "0x00",  
  "gasLimit": "0x80000000",  
  "difficulty": "0x400",  
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",  
  "coinbase": "0x3333333333333333333333333333333333333333",  
  "alloc": {     }  
}  

节点A:

geth --datadir "./" init genesis.json

geth --datadir "./" --nodiscover --networkid 333 --ipcdisable --port 1111 --rpc --rpcport 2222 console

这样就进入了控制台界面,获取本节点的信息:

admin.nodeInfo.enode

(我的返回值是:

"enode://c4561d49c91090f4666969dd01b223adbe10c9eeb3d65326002099e4a9f3f17dec3d3c70c8dceffbe4438d3f5f0ee5a9a11841076063422b629be778d669c8df@[::]:1111")

节点B:执行相同的命令

geth --datadir "./" init genesis.json

geth --datadir "./" --nodiscover --networkid 333 --ipcdisable --port 3333 --rpc --rpcport 4444 console

然后B节点主动加入A节点:(通过A的enode信息来连接,其中包括了ip地址和端口号)

admin.addPeer("enode://c4561d49c91090f4666969dd01b223adbe10c9eeb3d65326002099e4a9f3f17dec3d3c70c8dceffbe4438d3f5f0ee5a9a11841076063422b629be778d669c8df@192.168.1.1:1111")

(注意:不能原封不动的将上面的enode复制过来,需要将A节点的ip地址填上)

然后在两个节点上测试:

net.peerCount

会返回已连接的其他节点的个数

admin.peers

返回其他节点的信息


然后一个节点创建账户,开始挖矿,另一个节点也会自动同步。

(A节点可以将智能合约部署在私有链上,B节点可以根据合约部署地址来调用合约)


你可能感兴趣的:(区块链,------Ethereum)