Go语言 从DHT中删除引导对等项

z4iuyo4d  于 2023-03-10  发布在  Go
关注(0)|答案(1)|浏览(176)

我在我的项目中使用golang-libp 2 p,我使用Kadmelia DHT进行对等体发现。我可以通过以下方式访问引导对等体的信息。

import (
   "github.com/libp2p/go-libp2p/core/peer"
)

for _, peerAddr := range dht.DefaultBootstrapPeers {
    peerInfo, _ := peer.AddrInfoFromP2pAddr(peerAddr)

我可以看到,当我不断添加新的对等节点,peerInfo列表不断增加,即使在我重新启动程序。我正在寻找一个方法来修剪/删除现有的引导对等节点。我已经看到了一个拉请求,谈到这个问题,但它似乎没有包括在库中的方法。
在golang实现中,是否可以删除 Bootstrap 的对等体?

jdgnovmf

jdgnovmf1#

您是否尝试从DHT路由表中删除引导对等体,或者将其从主机断开?
如果您想从DHT路由表中删除一个对等体,可以使用RemovePeer(p peer.ID)函数。

dht.RoutingTable().RemovePeer(peerid)

如果要关闭与对等项的连接,可以尝试ClosePeer(peer.ID)RemovePeer(peer.ID)

dht.host.Network().ClosePeer(peerid)
dht.host.Peerstore().RemovePeer(peerid)

相关问题