Hasty Briefsbeta

双语

Persistent Peer IDs in libp2p JavaScript

10 months ago
  • #libp2p
  • #peer-identity
  • #networking
  • Libp2p每次应用重启时都会生成新的节点ID,导致网络身份不一致
  • 解决方案:持久化并复用私钥以保持一致的节点ID
  • 过时的文档和API变更使得难以找到正确方法
  • 现代解决方案需使用`@libp2p/crypto/keys`中的`privateKeyToProtobuf`和`privateKeyFromProtobuf`
  • 将私钥传递给`createLibp2p`可确保重启时节点ID相同
  • 避免直接持久化节点ID或使用已弃用函数如`marshalPrivateKey`
  • 该方案包含自动回退机制——加载失败时生成新密钥
  • 兼容最新libp2p版本并使用标准protobuf序列化
  • 要求Node.js 18+及特定版本的`@libp2p/crypto`、`@libp2p/peer-id`和`libp2p`