在哨兵節點後面隱藏IP地址
我想知道如何在哨兵(代理節點)後面設置乙太坊節點。我知道有幾種方法可以解決這裡提到的這個問題。 https://medium.com/@kidinamoto/tech-choices-for-cosmos-validators-27c7242061ea 但我只對最簡單的選項感興趣:單層哨兵節點設置,看起來像這樣:
是否有指南或出版物可以幫助我建立這種私有網路架構,同時仍然能夠使用哨兵節點與實時區塊鏈進行通信?
因此,您有一個驗證器節點
VAL0
和哨兵節點SEN1
,SEN2
,並且SEN3
根據上面的單層哨兵節點設置。我鼓勵通過防火牆管理網路,即UFW,但您也可以隨意添加其他層,即物理網路拓撲。
作為驗證器客戶端和信標節點,我們使用Lighthouse ,預設情況下將其配置為 p2p 埠
:9000
。哨兵節點
SEN1
,SEN2
,SEN3
哨兵節點網路設置非常通用,我們不允許傳入連接,除了有限的 SSH 訪問和 Lighthouse 發現埠。
ufw default deny incoming # deny incoming connections (server hardening) ufw default allow outgoing # allow outgoing connections (p2p requires that) ufw limit 22 # limit SSH requests, change this to your SSH port ufw allow 9000 # open the Lighthouse discovery port
隨意添加其他規則,例如,如果您設置監控儀表板。使用 啟用網路規則集
ufw enable
。參見規則ufw status
。現在只需按照官方文件配置燈塔信標鏈節點即可。https://lighthouse-book.sigmaprime.io/
如果更改發現埠,請確保更新 UFW 規則。
哨兵節點將在開放網際網路和區域網路上都可用,以連接到其他哨兵節點和驗證器節點。
驗證節點
VAL0
驗證者節點將與網際網路隔離。為簡單起見,我們將在這裡只使用 UFW 規則,這甚至適用於雲提供商,因為您的機器都在同一個本地網路/區域中。為了擴展安全性,您還可以添加物理網路邏輯,例如,僅將驗證器直接連接到哨兵而無需直接訪問 Internet(確保您在此處提出一些 SSH 邏輯)。
ufw default deny incoming # deny incoming connections (server hardening) ufw default deny outgoing # deny outgoing connections (to avoid the internet) ufw limit 22 # limit SSH requests, change this to your SSH port
我們拒絕任何傳入流量並限制 SSH 訪問。我們還拒絕所有傳出流量,以避免與 Internet 上的其他客戶端對等。
要僅允許本地網路連接到您的 Lighthouse 驗證器,請為以下子網打開埠 9000:
ufw allow from 10.0.0.0/8 to any port 9000 ufw allow from 192.168.0.0/16 to any port 9000
這允許本地子網
10.0.0.0/8
和192.168.0.0/16
訪問您的燈塔客戶端。現在,為了也允許傳出連接,對於相同的子網,請執行以下操作:
ufw allow out from any to 10.0.0.0/8 ufw allow out from any to 192.168.0.0/16
使用 啟用網路規則集
ufw enable
。參見規則ufw status
。現在只需按照官方文件配置燈塔信標鏈節點和驗證器客戶端即可。如果更改發現埠,請確保更新 UFW 規則。
發現
現在,最後一步是將客戶端連接在一起。哨兵節點
SEN1
、SEN2
和SEN3
將能夠訪問他們想要連接的信標鏈的公共引導節點,不需要太多操作。驗證器節點
VAL0
將需要一些自定義網路配置。以下配置選項派上用場:--boot-nodes <ENR-LIST> One or more comma-delimited base64-encoded ENR's to bootstrap the p2p network. --libp2p-addresses <MULTIADDR> One or more comma-delimited multiaddrs to manually connect to a libp2p peer without an ENR.
因此,要麼採用 LibP2P 多地址格式或乙太坊節點記錄 (ENR) 從三個
SEN1
,SEN2
和SEN3
, 並將其作為引導節點或靜態對等方傳遞給您的驗證器節點,例如:lighthouse bn --boot-nodes "enr:-LK4QHP9pudQUPud4VfLoRHBytpK1dE_mQYa-BCVJGsR4jHDO1uzmfkrXGTmovAn9RukI52icX3s0fHfhT-Fsinr1B8Dh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD2d10HAAABE___________gmlkgnY0gmlwhFzIHRCJc2VjcDI1NmsxoQKfVWe8YoASdFmIlVxo4Lh6je6jGW-tXOJWTh-6ZuW4ooN0Y3CCIyiDdWRwgiMo, ..."
或者:
lighthouse bn --libp2p-addresses "/ip4/10.0.3.84/tcp/9000/p2p/16Uiu2HAsDfeLV6FLXhh1D5MeTSxADCPfBCHRh4VrhcHzeSpxGQRF, ..."
這樣,您的驗證器節點將嘗試僅與您提供的哨兵節點對等。