以太坊私有鏈 多節點 注意事項筆記

以太坊 ethereum andy 4年前 (2020-05-25) 1135次浏览 已收录 0个评论 扫描二维码
以太坊私有鏈 多節點 注意事項筆記
多節點的環境在建構的時候,常常因為外在的因素的而產生連接的問題,比如說本機的 IP, 防火牆, NAT 的設定之類的。
如果你跟我一樣是用虛擬機來試作多節點的話,要克服的外部問題應該更多,所以最好的方式就是保持單純外部環境,打擊比較不那麼大。
本篇筆記,使用兩部虛擬機,及宿主機器來架構一個多節點的環境。
第一部虛擬機, 10.1.1.13 ,作為第一個節點建立創世區塊,OS 是 ubuntu20 ,
第二部虛擬機, 10.1.1.11 ,作為普通的節點運行,OS 是 Mint 19 ,可建立帳號,可挖礦。
第三部宿主機, 10.1.1.250 , 作為本篇筆記的操作及記錄環境,OS 是 win10 ,也是一般節點。
我建立節點的順序是先在 13 上建立第一個創世區塊的節點,
然後在 11 上建立第二個節點,並確認能連上 P2P 網路,
最後 250 上建立第三個節點,然後寫下本篇筆記,
win10 在建立節點時應注意的事項跟另外兩個相同,並沒有因為 OS不同而產生應特別注意的,
因此本篇的截圖以 win10 的 power shell 為主,其他兩部虛擬機為輔。
過程中會反復的在各節點中切換,三部機器的 terminal 介面都不一樣,稍微注意就可以看出截圖是哪一部機器。
一、環境檢查
網路要通,防火牆要打開什麼的,common sense 的就不講了。只說明及截圖跟geth 有關的部份。
首先確認13環境,
以太坊私有鏈 多節點 注意事項筆記
13 上面需要注意的是 enode 及 創世區塊建立時的設定檔,就是上篇文章中的 study_chain.json ,還有 networkid 。
將 study_chain.json 複制到 250 的 node8 目錄,我們將以 node8 作為geth 的工作目錄
以太坊私有鏈 多節點 注意事項筆記
使用 geth –datadir data –networkid=55661 init study_chain.json 初始化一個跟第一節點,有相同特徵的創世區塊
以太坊私有鏈 多節點 注意事項筆記
看到 Successfully 就放心一半,如果有問題,用 geth removedb –datadir data 來清除已有的數據
使用 geth –datadir data –networkid=55661 console 開始運行
以太坊私有鏈 多節點 注意事項筆記
注意一下 enode 的訊息,也可以用 admin.nodeInfo 來查詢
使用admin.nodeInfo 來查詢本機節點的狀態,然後用 admin.peers 看其他連到本機的節點,
以太坊私有鏈 多節點 注意事項筆記以太坊私有鏈 多節點 注意事項筆記
有時候 admin.peers 會看一些節點連上來,但是 chainId 不同,networkid 不同,在連線時的 shakehand 階段,就會被忽略掉,不會真的連上來。
使用 admin.addPeer(“enode://6c141d2344d8d87cb939684364fd3fbede9f2cc933549b5d0f9f30a4b266bd5df49134a15a309b136f24d3a52b177b448911e297c677fdb57fb5d09a5f37971b@10.1.13:30305“) 來連上 13
以太坊私有鏈 多節點 注意事項筆記
這裡需要特別注意的是 enode 裡面的 ip 及 port ,ip 請輸入應該要能連上線的正確 ip 而不是顯示出來的那個。比如說,以本例,正確的是 10.1.1.13 , 但顯示出的卻是 192.168.1.201 ,不能使用顯示的,因為那是有可能網路環境造成的誤判(我的環境問題,也許你也會有相同問題)。port 可以指定,不指定就是 30303
使用 admin.peers 來卻定節點連接情況
以太坊私有鏈 多節點 注意事項筆記
也許會看到其他不相關連進來的節點,請忽略。注意到 remoteAddress 顯示 13 的 ip 及 port ,就是已經連上 13.
eth.blockNumber 看下區塊編號
以太坊私有鏈 多節點 注意事項筆記
區塊編號20 ,稍為記一下,等一下可以比對。
到 13 看下連接節點 admin.peers
以太坊私有鏈 多節點 注意事項筆記
其中要注意的是 來自 250 這個,就是我們剛剛連上的。另一 個 11 是在寫這篇筆記時就連上的。
二、節點同步情況
我們可以用各種複雜的方法,來確定節點之間的同步,比如帳號餘額之類的。但我們用區塊編號來看節點之間的同步情況,更為簡單明確的數值
首先確定三個節點目前的區塊編號
以太坊私有鏈 多節點 注意事項筆記
以太坊私有鏈 多節點 注意事項筆記
以太坊私有鏈 多節點 注意事項筆記
這裡我們用 11 來做為礦機,先設定挖礦時收獎勵的地址 miner.setEtherbase(“0xe49744CB16d401361cEC40003e83Bb3617771a48”)
以太坊私有鏈 多節點 注意事項筆記
開始挖礦 miner.start(1)
以太坊私有鏈 多節點 注意事項筆記
等了很久終於挖到礦
以太坊私有鏈 多節點 注意事項筆記
暫停挖礦 miner.stop()
然後再看一下三部機器的區塊編號
以太坊私有鏈 多節點 注意事項筆記
以太坊私有鏈 多節點 注意事項筆記
以太坊私有鏈 多節點 注意事項筆記
以上的圖,就是收到區塊的訊息,以及最後用 eth.blockNumber 所顯示出來的區塊編號29
三部不同環境的機器,都已經同步了。
其實輸入命令然後查看並不難,只要環境建立了,也不會有什麼意外產生。
以太坊網路及節點的特性,透過本次私有鏈多節點的實作,能夠稍微感受一下,區塊鏈網路對於同步的要求。
比如說創世區塊的設定一定要一樣,只要稍有不同,節點就無法相連。
是否應該有個管理面版呢?

神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:以太坊私有鏈 多節點 注意事項筆記
喜欢 (0)
[[email protected]]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址