Skip to content
🎉 Welcome to the new Aptos Docs! Click here to submit feedback!
Network
自定义 PFN 网络

自定义 PFN 网络

⚠️

高级自定义
大多数 PFN 运营者不需要自定义他们的 PFN 网络连接。只有在一些特殊的高级场景下才需要进行此类配置,例如连接到特定的对等节点(peers),或者配置一个私有的 PFN。如非特定应用场景所需,请避免对您的 PFN 网络连接作出修改。

在运行 PFN 的过程中,您可以出于不同的目的来设置节点的网络连接配置。比如,您可以向节点的配置中添加一条种子节点信息,以实现您的节点与您挑选的特定对等节点(peer)建立连接。或者,您还可以如生成 PFN 身份文档中描述的那样,设置一个静态的网络身份,让其他节点能够连接到您的 PFN。

本文档概述了如何根据不同的情况配置您的 PFN 网络,包括:

  • 允许节点连接到您的 PFN。
  • 将您的 PFN 连接到种子对等节点(seed peer)。
  • 为其他 PFN 配置优先访问。
  • 配置您的 PFN 作为私有 PFN。

允许 PFN 连接

生成静态身份
在允许其他节点连接到您的 PFN 之前,您需要创建一个静态身份。见生成 PFN 身份

一旦您使用静态身份启动了 PFN,您可以允许其他人连接到您的 PFN:

默认端口设置
以下步骤中出现的端口号只是作为演示使用的实例,您可以根据个人需求选择不同的端口号。更多关于端口配置的详细信息,请参阅PFN 要求

  • 请确保开放您想要允许外部连接使用的 TCP 端口(如 61806182 )。这一步骤对于让其他节点能够连接到您的 PFN 是必须的。
  • 如果您正在使用 Docker,在 docker-compose.yaml 文件的端口部分只需要添加 - "6180:6180"- "6182:6182"
  • 与他人分享您的 PFN 静态网络身份。然后,他们可以在节点的配置文件的 seeds 键中使用它连接到您的 PFN。详见以下部分。
  • 确保您在 addresses 中配置的端口号与您在 PFN 配置文件中配置的端口号相匹配(例如, 6180 6182)。

您可以通过我们的 Discord 分享您的 PFN 的网络身份,以宣传您的节点供其他人连接。这项操作是可选的,不是强制性要求。

下面的片段显示了允许其他节点连接到您的 PFN 的配置文件条目和格式。每个种子对等节点(seed peer)条目的格式应具有唯一的 peer_idaddresses 列表和 role

docker-compose.yaml
<Peer_ID>:
  addresses:
  # 使用 DNS
  - "/dns4/<DNS_Name>/tcp/<Port_Number>/noise-ik/<Public_Key>/handshake/0"
  role: Upstream
<Peer_ID>:
  addresses:
  # 使用 IP
  - "/ip4/<IP_Address>/tcp/<Port_Number>/noise-ik/<Public_Key>/handshake/0"
  role: Upstream

例如:

docker-compose.yaml
B881EA2C174D8211C123E5A91D86227DB116A44BB345A6E66874F83D8993F813:
  addresses:
  - "/dns4/pfn0.node.devnet.aptoslabs.com/tcp/6182/noise-ik/B881EA2C174D8211C123E5A91D86227DB116A44BB345A6E66874F83D8993F813/handshake/0"
  role: "Upstream"
B881EA2C174D8211C123E5A91D86227DB116A44BB345A6E66874F83D8993F813:
  addresses:
  - "/ip4/100.20.221.187/tcp/6182/noise-ik/B881EA2C174D8211C123E5A91D86227DB116A44BB345A6E66874F83D8993F813/handshake/0"
  role: "Upstream"

连接到种子对等节点

⚠️

种子(seed)不是必须的
您的 PFN 无需依赖种子对等节点(seed peer)也能连接到任意 Aptos 网络。无论是开发网(devnet)、测试网(testnet)还是主网(mainnet),系统都能自动识别它们。您仅在希望连接特定的高质量节点(或节点集,set of peer)时,才需要添加种子对等节点。

要把种子对等节点添加到您的 PFN,您需要在 PFN 的配置文件中添加种子对等节点的地址,具体位置是公共网络配置中的 seeds 配置项。每一个种子对等节点的信息包括一个独一无二的 peer_idaddresses 列表,以及 role 的角色(比如 Upstream)。以下是一个配置文件的示例,其中手动添加了种子对等节点:

full_node_networks:
  - discovery_method: "onchain"
    listen_address: ...
    seeds: # 所有种子都在下面声明
      bb14af025d226288a3488b4433cf5cb54d6a710365a2d95ac6ffbd9b9198a86a:
        addresses:
          - "/dns4/pfn0.node.devnet.aptoslabs.com/tcp/6182/noise-ik/bb14af025d226288a3488b4433cf5cb54d6a710365a2d95ac6ffbd9b9198a86a/handshake/0"
        role: "Upstream"
      7fe8523388084607cdf78ff40e3e717652173b436ae1809df4a5fcfc67f8fc61:
        addresses:
          - "/dns4/pfn1.node.devnet.aptoslabs.com/tcp/6182/noise-ik/7fe8523388084607cdf78ff40e3e717652173b436ae1809df4a5fcfc67f8fc61/handshake/0"
        role: "Upstream"
      f6b135a59591677afc98168791551a0a476222516fdc55869d2b649c614d965b:
        addresses:
          - "/dns4/pfn2.node.devnet.aptoslabs.com/tcp/6182/noise-ik/f6b135a59591677afc98168791551a0a476222516fdc55869d2b649c614d965b/handshake/0"
        role: "Upstream"

配置优先访问

要配置您的 PFN 允许其他节点即使在您的 PFN 达到最大可用网络连接数时也能连接到它,请遵循以下方法:

在您的 PFN 的配置文件中,将其他节点作为种子对等节点添加,并使用 Downstream 角色。这将允许其他节点直接连接到您,并获得优先访问权。例如:

seeds:
  <其他节点的对等ID>
    addresses:
    - <其他节点的地址>
    role: Downstream # 允许节点连接到我们

类似地,要使其他节点主动连接到您的 PFN,请让其他节点的配置文件中添加以下内容:

seeds:
  <您的节点的对等ID>
    addresses:
    - <您的节点的地址>
    role: PreferredUpstream # 允许节点连接到种子对等节点

配置私有 PFN

如果您希望,您也可以将您的 PFN 配置为私有 PFN。这意味着您的 PFN 将不允许未经身份验证的连接,具体来说,任何不是验证器、VFN 或种子对等节点的节点都将无法连接到您的 PFN。

要将您的 PFN 配置为私有 PFN,请在您的 PFN 配置文件中添加以下内容。注意,您应该将其添加到 full_node_networks 配置中的公共网络条目中:

...
full_node_networks:
  - discovery_method: "onchain"
    listen_address: ...
    max_inbound_connections: 0  # 防止任何未经身份验证的传入连接
    mutual_authentication: true  # 需要身份验证的连接
...