假設我們有多個節點需要協同處理,我們希望這些節點連接起來,那么就要在啟動時告訴該節點其他節點的存在,我們先以2個節點為例
第一個節點正常啟動,指定networkid,
./geth --datadir private_data/ --networkid 12345 console
啟動后會列出自身節點的標識
INFO [09-29|15:45:33] UDP listener up
self=enode://a7a40b72a2c52cd644a7b9dfaa200a0ce123c60b74a787d30da2a313c8bcddb81d890487504be2eb95ed247909ae2112c48f7f0a86d03a371f8f4548d48acc02@[::]:30303
其他節點啟動時,先用相同的創世區塊初始化,啟動時把第一個節點標示的[::]改為其ip地址,加到bootnodes參數中,注意這里的networkid參數一定要一樣,否則無法接入
geth --datadir data --networkid 12345 --bootnodes "enode://1143901514833a0ce3213ed894d138ce9eda5fc7321356b1dc24c1931fa85e2f74b49735949c4bd1952617506e30184e8b3549def73de822475fec02680d1437@[第一個節點的IP]:30303" console
之后我們驗證一下,兩個節點是否相互連接起來,在第二個節點的console中使用admin.peers,可以看到節點的id和ip,就是第一個節點的信息
圖片.png
遺留問題:節點2在同步節點1的區塊信息時,出現“retrieved hash chain is invalid”錯誤,暫時不知道是什么原因:
圖片.png