以太坊搭建私有链(两台电脑)
要求:
1、两台电脑必须在同一个网络,并且能ping通
2. 两个节点使用相同的创世块文件
3.禁用ipc; 同时使用参数--nodiscover
4.networkid必须相同,端口号可以不同
该节点使用的创世块内容为:
{
"config": {
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {
"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "100000000000000000000000" },
"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "120000000000000000000000" }
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x1",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}
节点 A:
初始化区块链:
geth --datadir data0 init genesis.json
geth --datadir data0 --nodiscover --networkid 333 --ipcdisable --port 1111 --rpc --rpcport 2222 console 2>>geth.log
console 2>>geth.log命令使用特殊文件记录日志信息以太坊建立时间,保持控制台整洁
这将进入控制台界面并获取该节点的信息:
admin.nodeInfo.enode
(我的返回值是:
“enode://c4561d49c91090f4666969dd01b223adbe10c9eeb3d65326002099e4a9f3f17dec3d3c70c8dceffbe4438d3f5f0ee5a9a11841076063422b629be778d669c8:df)1@[
节点 B(另一台计算机):执行相同的命令
geth --datadir data0 init genesis.json
geth --datadir data0 --nodiscover --networkid 333 --ipcdisable --port 3333 --rpc --rpcport 4444 console 2>>geth.log
然后B节点主动加入A节点:(通过A的enode信息连接以太坊建立时间,包括ip地址和端口号)
admin.addPeer("enode://c4561d49c91090f4666969dd01b223adbe10c9eeb3d65326002099e4a9f3f17dec3d3c70c8dceffbe4438d3f5f0ee5a9a11841076063422b629be778d1f@6191.8")
(注意:不能原封不动的复制上面的enode,需要填写节点A的ip地址)
然后在两个节点上测试:
net.peerCount
将返回其他连接节点的数量
行政。 同行
返回其他节点的信息
然后一个节点创建账户开始挖矿(记得解锁账户),另一个节点会自动同步。
(A节点可以在私有链上部署智能合约,B节点可以根据合约部署地址调用合约)(该功能暂未测试)
geth 附加“http://172.0.0.1:2222”
参考文章:
“enode://60c369ceb1f8d75a6c71d4fcf53ebf0d74aa696f07a4b753fbade74a77366cb0769c06f3cf1624b639064230d702a5da7a9615477bbbea9631c91512d64.41320@81520”