从 IPFS Swarm 对等点获取对等多地址

Getting the peer multiaddr from IPFS Swarm peers

我正在尝试使用所有支持的编码解码存储在 addr 键中的缓冲区,该键在 IPFS swarm peers function back to the original string. I tried to use the toString() 方法返回的输出中找到,但是输出我得到的解码不正确。

const swarm_peers = await node.swarm.peers(); 
console.log(swarm_peers['2']['addr']['buffer'].toString());

下面是我得到的示例输出

6sgp-1.bootstrap.libp2p.io����" BD�38\

如何正确解码缓冲区?

您不应在原始 buffer 上调用 toString(),而应在 addr 对象上调用:

const peers = await node.swarm.peers()
peers.forEach(peer => console.log(peer.addr.toString()))