全節點同步

服務介紹

全節點高速同步服務基於高性能網絡實現Ethereum客户端的低時延同步,用戶的Ethereum客户端可直接與就近地區的Relay建立P2P連接。與訂閱區塊數據流不同,全節點高速同步服務是將最新區塊通過對等節點網絡同步至用戶的Ethereum客户端,用戶可在第一時間获得最新区块事件与世界状态。

流控說明

Tier 3Tier 2Tier 1

允許連接的節點數量

-

2

5

使用說明

步驟1:向Relay開放端口

如果你的Ethereum客戶端部署於AWS等雲服務,需在雲環境中額外配置安全組(security group)的入端(inbound)規則。

  1. 進入自己的Ethereum客戶端所在服务器,設置防火牆允許Relay訪問

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="52.205.173.134" port port="30311" protocol="tcp" accept'
  • source address是Relay的IP地址,可以在 高性能網絡服務中查詢

  • port是Ethereum客戶端允許Relay訪問的端口,一般默認為30311,用戶可根據自己節點配置修改

  1. 重載防火牆配置,以使配置生效

sudo firewall-cmd --reload

步驟2:添加Enode

  1. 前往https://www.blockrazor.io/,點擊右上角的【註冊】,完成註冊

  2. 登錄控制台,前往【服務】 - 【全節點同步服務】,點擊【添加】

  1. 選擇Relay所在地區(建議根據自己Ethereum客戶端的地理位置就近選擇地區),輸入需要連接的Ethereum客戶端的Enode,點擊【確認】,完成添加

步骤3:设置Relay为TrustedNode(以Geth節點為例)

為確保Geth節點和Relay可以保持持續連接,建議在Geth節點的config.toml中添加Relay Enode

  1. 在 config.toml文件中,找到 Node.P2P中的TrustedNodes字段,添加在步驟2中獲取的Relay Enode

[Node.P2P]
TrustedNodes = ["enode://b5b4e5aa8d8f4568af755af6da0d4642b6475d8d87c3470632bdecab8f54e4e2936ec8ae0d6f34cff8b052235e81a281912c17dfcdbf40d6d3c281b78ada4134"]
  1. 重啓Geth節點,指定config.toml啓動,--config config.toml

注:你也可以使用JSON RPC将Relay添加为trusted node,具体可参见官方文档

步驟4:查詢連接狀態(以在Geth節點中開啓admin namespace為例)

  1. 等待10分鐘,進入Geth節點, 執行命令,查看連接狀態

curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' http://localhost:8545

  1. 在返回的数据中查詢相應地區的Relay Enode地址(可前往控制台複製獲取),如查詢到地址存在則證明連接成功

[
    {
        "enode": "enode://9ddacbcca0dc1d1b112d470552acc795fce5c3e9f50983fcd5cee7b47289914295acaef3163bea819bcc967461978425def13595deb7de4063295c40e593f320@52.205.173.134:53754",
        "id": "8be29a75ac2cf81e3aa37ccc119630a9dfc43c88d7b5200398a466f5ef9097c4",
        "name": "Geth/v1.4.5/linux-amd64/go1.21.7",
        "caps": [
            "eth/68"
        ],
        "network": {
            "localAddress": "127.0.0.1:30311",
            "remoteAddress": "52.205.173.134:53754",
            "inbound": true,
            "trusted": false,
            "static": false
        },
        "protocols": {
            "eth": {
                "version": 68
            }
        }
    }
]

如經查詢發現連接狀態異常,有可能是因為節點間的網絡通信出現問題,請前往Discord與我們取得聯系。

Last updated