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
。我会努力的;-)
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消