Go-Ethereum

用 PoA 連接不同的機器

  • January 13, 2019

我想在乙太坊專用網路中連接兩台不同的機器!

我以前用普通的 PoW-Consesus 做過,但是用 puppeth 創建的 PoA 我嘗試時看不到一些 Peers:

admin.peers

我做過的事情:

在兩台機器上初始化乙太坊賬戶:

geth --datadir data/node1 account new
geth --datadir data/node2 account new

然後我用 puppeth 創建了一個 genesis 文件並將其複製到它們相似的另一台機器上!

該文件如下所示:

{“config”:{“ChainId”:1001,“HomeSteadblock”:1,“EIP150HASH”:2,“EIP1500000000000”EIP1550000000000“:3,”EIP158Block“:3,”Byzantiumblock“:4, “constantinopleBlock”:5,“clique”:{ “period”:0,“epoch”:30000 } },“nonce”:“0x0”,“timestamp”:“0x5c3894dc”,“extraData”:“0x0000000000000000000000000000000000000000000000000000000000000000d460f5cc1dd0efec245ca8a87afd5c1ba1456f7e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000“,”gasLimit“:”0x47b760“,”看病難“:”為0x1“,”mixHash“:”0x0000000000000000000000000000000000000000000000000000000000000000“,”coinbase“:”0x0000000000000000000000000000000000000000“,”黃金“:{”d460f5cc1dd0efec245ca8a87afd5c1ba1456f7e“:{”平衡“:” 0x20000000000000000000000000000000000000000000000000000000000000000 } },“數字”:“0x0”,“gasUsed”:“0x0”,“parentHash”:“0x0000000000000000000000000000000000000000000000000000000000000000"

然後我用這個命令初始化了 genesis 文件:

geth --datadir data/node1/ init genesis.json
geth --datadir data/node2/ init genesis.json

之後,我使用以下命令啟動了兩個節點:

geth --datadir="data/node1" --networkid "1001" --nodiscover console --unlock "d460f5cc1dd0efec245ca8a87afd5c1ba1456f7e" --rpc --rpcport "8000" --rpcaddr "0.0.0.0" --rpccorsdomain "*" --rpcapi "eth,net,web3,miner,debug,personal,rpc" --syncmode "full"

geth --datadir="data/node2" --networkid "1001" --nodiscover console --unlock "1200f5a866b0889a816d808a82b4f3be30ba6ba2" --rpc --rpcport "8000" --rpcaddr "0.0.0.0" --rpccorsdomain "*" --rpcapi "eth,net,web3,miner,debug,personal,rpc" --syncmode "full"

要找出我在沒有預平衡的機器上寫的 enode:

admin.nodeInfo.enode

給我這個輸出:

“enode://2c98ce532ae14020437889ecc9af8f15fd3463ccb6262c9eec124073ab6ee8999ebe2ff97bf8559e3b5b7c85157251129127600c955c1d1a3b3e9fb5430f1203=0.30.00c955c1d1a3b3e9fb5430f1203=0.3port=0.37

並在複製enode後在主機上執行此命令:

admin.addPeer("enode://2c98ce532ae14020437889ecc9af8f15fd3463ccb6262c9eec124073ab6ee8999ebe2ff97bf8559e3b5b7c85157251129127600c955c1d1a3b3e9fb54330f120@127.0.0.1:30303?discport=0")

我也試過這個命令:

admin.addPeer("enode://2c98ce532ae14020437889ecc9af8f15fd3463ccb6262c9eec124073ab6ee8999ebe2ff97bf8559e3b5b7c85157251129127600c955c1d1a3b3e9fb54330f120@127.0.0.1:30303")

你能幫我連接不同機器的對等點,我可以執行一個私有 PoA 乙太坊!

無論如何謝謝 :)

由於您嘗試連接兩台機器,因此您必須使用它們的外部 ip 而不是 127.0.0.1

例如,如果 ip 是 192.168.1.99,那麼命令應該是:

admin.addPeer(“enode://2c98ce532ae14020437889ecc9af8f15fd3463ccb6262c9eec124073ab6ee8999ebe2ff97bf8559e3b5b7c85157251129127600c955c1d1a3b23e9fb5433068)@191 . _

引用自:https://ethereum.stackexchange.com/questions/65385