为了账号安全,请及时绑定邮箱和手机立即绑定

如何从主机获取 PeerInfo?

如何从主机获取 PeerInfo?

Go
萧十郎 2023-04-24 16:53:51
PeerInfo我正在尝试从一个实例中获取一个libp2p.Host。我可以multiaddr.Multiaddr通过调用 获取 s的列表Host.Addrs(),但我无法将它们转换为有效的peerstore.PeerInfo.这是我的尝试,它因错误而恐慌panic: invalid p2p multiaddr。package mainimport (    "log"    "github.com/SentimensRG/ctx"    "github.com/SentimensRG/ctx/sigctx"    libp2p "github.com/libp2p/go-libp2p"    ps "github.com/libp2p/go-libp2p-peerstore")var c = ctx.AsContext(sigctx.New())func main() {    h0, err := libp2p.New(c)    if err != nil {        panic(err)    }        addr0 := h0.Addrs()[1]    _, err := ps.InfoFromP2pAddr(addr0)    if err != nil {        panic(err)    }}我怎样才能peerstore.PeerInfo从 a 得到 a libp2p.Host?
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

PeerInfo是一个封装了对等 ID 及其多地址的结构。要从主机轻松构建 PeerInfo,您只需执行以下操作:

pi := PeerInfo{
        ID: host.ID(),
        Addrs: host.Addrs(),
}

pstore.InfoFromP2pAddr()p2p需要带有 a或组件的multiaddripfs才能填充PeerInfo.ID元素。

也就是说,我们绝对可以让PeerInfo从 a获取 a 变得更容易Host。我会努力的;-)


查看完整回答
反对 回复 2023-04-24
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信