概述
UDP 认证为 Monad 节点提供了安全、经过身份验证的点对点通信。此功能目前为可选加入,将在未来的版本中成为强制要求。 优势:- 增强的安全性:使用您现有的验证者密钥对对等连接进行加密认证
- DoS 防护:防止来自伪造数据包的资源耗尽
- 流量优先级:为交易转发启用高效的 QoS 策略
- 性能:与逐包 ECDSA 签名相比,数据包验证速度提升约 100 倍
前置条件
- Monad 版本:
0.12.6或更高版本 - 访问权限:节点上的 Root/sudo 权限
- 密钥库:现有的
/home/monad/monad-bft/config/id-secp文件 - 网络:能够在防火墙上打开 UDP 端口 8001
节点运营者操作说明
1. 验证 Monad 版本
验证安装:2. 配置防火墙
为经过身份验证的流量打开 UDP 端口 8001:3. 生成认证签名
生成节点的认证名称记录签名:重要:输出示例:--self-record-seq-num值必须大于您当前node.toml中的self_record_seq_num。
- 如果您的配置显示
self_record_seq_num = 0,请使用1- 如果您的配置显示
self_record_seq_num = 1,请使用2
authenticated_udp_port 参数,因为在 node.toml 中该参数名为 self_auth_port。
保存此输出 - 您将在下一步中需要它。
4. 更新配置
编辑您的 Monad 配置:4.1 更新 Peer Discovery 部分
在节点配置中:- 用步骤 3 的输出替换
[peer_discovery]部分中的值 - 添加
self_auth_port参数
4.2 更新 Network 部分
将authenticated_bind_address_port 参数添加到 [network]:
4.3 更新对等节点记录(仅限验证者)
如果您运营的验证者带有下游全节点,请在其启用 UDP 认证时更新对等节点配置。 对于已启用 UDP 认证的对等节点:- 使用下游节点的新值更新
record_seq_num和name_record_sig - 设置
auth_port = 8001
peers.toml 文件中显示 auth_port = 8001。
auth_port 行:
5. 重启并验证
重启 Monad 服务:验证
检查服务状态
active (running)
验证端口绑定
故障排查
问题:“invalid name record signature in config file”
原因:node.toml 中的签名与参数不匹配。
解决方案:
- 验证您是否正确地递增了
self_record_seq_num - 使用正确的 seq_num 重新运行
monad-sign-name-record - 将新签名复制到
node.toml - 重启服务
问题:端口 8001 未监听
解决方案:问题:防火墙阻止连接
解决方案:回滚说明
如果需要禁用 UDP 认证:1. 生成不带认证端口的新签名
2. 更新配置
编辑/home/monad/monad-bft/config/node.toml:
- 更新
[peer_discovery]中的self_record_seq_num和self_name_record_sig - 删除或注释掉
[network]中的authenticated_bind_address_port - 从对等节点配置中删除所有
auth_port条目
3. 重启服务
快速健康检查脚本
将此脚本保存为check_udp_auth.sh 以便快速验证:
附加说明
- 向后兼容性:节点可以与已认证和未认证的对等节点通信
- 渐进式部署:在可选加入期间,您可以按照自己的节奏启用认证
- 未来要求:UDP 认证将在未来的版本中成为强制要求(日期待定)
- 序列号:重新生成签名时始终递增
self_record_seq_num - 密钥复用:认证使用您现有的验证者密钥(secp256k1)
支持
如果您遇到本指南未涵盖的问题:- 检查日志:
journalctl -u monad-bft -n 500 --no-pager - 验证所有配置参数与示例匹配
- 确保您的防火墙和网络策略允许 UDP/8001
- 联系 Monad 支持并提供您的日志和配置(请脱敏敏感数据)

