Show / Hide Table of Contents

Neo-CLI SeedList

介绍

关于 SeedList

简单来说,SeedList 是一个 URL 列表,是 Neo-CLI 在启动时尝试连接的节点。在 neo-cli 目录下的 protcol.json 文件中可以找到 SeedList。

{
  "ProtocolConfiguration": {
    "Magic": ...,
    "AddressVersion": ...,
    "SecondsPerBlock": ...,
    "StandbyValidators": [
      ...
    ],
    "SeedList": [
      "seed1.neo.org:10333",
      "seed2.neo.org:10333",
      "seed3.neo.org:10333",
      "seed4.neo.org:10333",
      "seed5.neo.org:10333"
    ],
    "SystemFee": {
      ...
    }
  }
}

在上面的文件中,Neo-CLI 配置为通过 PORT:10333 连接 seed1.neo.orgseed2.neo.org 等系列节点。

潜在的问题

假如以上列表中的每个节点故障,Neo-CLI 会尝试连接相邻节点。但是这种方法存在很多未知因素,例如相邻节点出问题了,可能导致等待时间相当漫长。

更新 SeedList

通过使用我们确定的活跃节点更新 SeedList,可以避免上述潜在问题中提到的漫长等待风险。

活跃节点

如何寻找活跃节点呢?City of Zion的技术人员创建了一个优秀 资源 用来不间断地对世界各地的节点进行 ping 操作,可以通过 tracker 查看。

seedlist在上图中可以看到可用节点列表,最新的节点显示在最上方。通常,绿色并显示 yes 的节点为活跃节点。

我们会根据以下端口的标准协议进行选择,比如我们会选择上图中的节点 1 而不选节点3,因为节点 1符合标准而节点 3 不符合。

主网测试网
JSON-RPC via HTTPS1033120331
JSON-RPC via HTTP1033220332
P2P via TCP1033320333
P2P via WebSocket1033420334

以下是选出的几个 (任意数量) 活跃节点地址:

  • seed3.aphelion-neo.com

  • seed4.aphelion-neo.com

  • node2.ams2.bridgeprotocol.io

  • pyrpc1.nodeneo.ch

  • node2.nyc3.bridgeprotocol.io

  • ……

Neo-CLI 通信的主要端口是 10333。目前只对 RPC 执行 ping 操作。我们假设如果一个节点的 RPC 端口启动,那它的 P2P 端口也将启动

编辑 protocol 文件

为了告知 Neo-CLI 新的节点列表,需要将前面几个地址粘贴到 protocol.json ,以下是示例的 protocol.json 文件。

{
  "ProtocolConfiguration": {
    "Magic": 7630401,
    "AddressVersion": 23,
    "SecondsPerBlock": 15,
    "StandbyValidators": [
      "03b209fd4f53a7170ea4444e0cb0a6bb6a53c2bd016926989cf85f9b0fba17a70c",
      "02df48f60e8f3e01c48ff40b9b7f1310d7a8b2a193188befe1c2e3df740e895093",
      "03b8d9d5771d8f513aa0869b9cc8d50986403b78c6da36890638c3d46a5adce04a",
      "02ca0e27697b9c248f6f16e085fd0061e26f44da85b58ee835c110caa5ec3ba554",
      "024c7b7fb6c310fccf1ba33b082519d82964ea93868d676662d4a59ad548df0e7d",
      "02aaec38470f6aad0042c6e877cfd8087d2676b0f516fddd362801b9bd3936399e",
      "02486fd15702c4490a26703112a5cc1d0923fd697a33406bd5a1c00e0013b09a70"
    ],
    "SeedList": [
      "seed1.neo.org:10333",
      "seed2.neo.org:10333",
      "seed3.neo.org:10333",
      "seed4.neo.org:10333",
      "seed5.neo.org:10333",
      "seed4.aphelion-neo.com:10333",
      "node2.sgp1.bridgeprotocol.io:10333",
      "seed2.aphelion-neo.com:10333",
      "seed3.aphelion-neo.com:10333",
      "node2.ams2.bridgeprotocol.io:10333",
      "pyrpc1.narrative.network:10333",
      "node2.nyc3.bridgeprotocol.io:10333",
      "pyrpc4.narrative.network:10333",
      "pyrpc2.narrative.network:10333",
      "pyrpc3.narrative.network:10333",
      "seed1.aphelion-neo.com:10333",
      "seed1.switcheo.network:10333",
      "seed2.switcheo.network:10333",
      "seed5.cityofzion.io:10333",
      "seed3.cityofzion.io:10333",
      "seed3.switcheo.network:10333",
      "seed1.o3node.org:10333",
      "seed3.travala.com:10333",
      "seed4.cityofzion.io:10333",
      "seed2.cityofzion.io:10333",
      "seed2.o3node.org:10333",
      "seed3.o3node.org:10333",
      "node1.sgp1.bridgeprotocol.io:10333",
      "seed2.travala.com:10333",
      "seed4.switcheo.network:10333",
      "seed1.spotcoin.com:10333",
      "node1.nyc3.bridgeprotocol.io:10333"
    ],
    "SystemFee": {
      "EnrollmentTransaction": 1000,
      "IssueTransaction": 500,
      "PublishTransaction": 500,
      "RegisterTransaction": 10000
    }
  }
}

请注意,我们在每个地址的末尾添加了 :10333 ,以告知 Neo-CLI 使用 P2P 协议进行连接。

到此,你就可以像往常一样启动 Neo-CLI 了。

相关工具

如果觉得上述操作繁琐,可以编写一个自动更新 protocol.json 的脚本,具体参见 这里

阅读下节

命令参考