自定义 PFN 网络
在运行 PFN 的过程中,您可以出于不同的目的来设置节点的网络连接配置.比如,您可以向节点的配置中添加一条种子节点信息,以实现您的节点与您挑选的特定对等节点(peer)建立连接.或者,您还可以如生成 PFN 身份文档中描述的那样,设置一个静态的网络身份,让其他节点能够连接到您的 PFN.
本文档概述了如何根据不同的情况配置您的 PFN 网络,包括:
- 允许节点连接到您的 PFN.
- 将您的 PFN 连接到种子对等节点(seed peer).
- 为其他 PFN 配置优先访问.
- 配置您的 PFN 作为私有 PFN.
允许 PFN 连接
Section titled “允许 PFN 连接”一旦您使用静态身份启动了 PFN,您可以允许其他人连接到您的 PFN:
- 请确保开放您想要允许外部连接使用的 TCP 端口(如
6180
或6182
).这一步骤对于让其他节点能够连接到您的 PFN 是必须的. - 如果您正在使用 Docker,在
docker-compose.yaml
文件的端口部分只需要添加- "6180:6180"
或- "6182:6182"
. - 与他人分享您的 PFN 静态网络身份.然后,他们可以在节点的配置文件的
seeds
键中使用它连接到您的 PFN.详见以下部分. - 确保您在
addresses
中配置的端口号与您在 PFN 配置文件中配置的端口号相匹配(例如,6180
或6182
).
下面的片段显示了允许其他节点连接到您的 PFN 的配置文件条目和格式.每个种子对等节点(seed peer)条目的格式应具有唯一的 peer_id
, addresses
列表和 role
:
<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
例如:
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"
连接到种子对等节点
Section titled “连接到种子对等节点”要把种子对等节点添加到您的 PFN,您需要在 PFN 的配置文件中添加种子对等节点的地址,具体位置是公共网络配置中的 seeds
配置项.每一个种子对等节点的信息包括一个独一无二的 peer_id
,addresses
列表,以及 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"
配置优先访问
Section titled “配置优先访问”要配置您的 PFN 允许其他节点即使在您的 PFN 达到最大可用网络连接数时也能连接到它,请遵循以下方法:
在您的 PFN 的配置文件中,将其他节点作为种子对等节点添加,并使用 Downstream
角色.这将允许其他节点直接连接到您,并获得优先访问权.例如:
seeds: <其他节点的对等ID> addresses: - <其他节点的地址> role: Downstream # 允许节点连接到我们
类似地,要使其他节点主动连接到您的 PFN,请让其他节点的配置文件中添加以下内容:
seeds: <您的节点的对等ID> addresses: - <您的节点的地址> role: PreferredUpstream # 允许节点连接到种子对等节点
配置私有 PFN
Section titled “配置私有 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 # 需要身份验证的连接...