refactor: 更换 mDNS 节点存储组件

This commit is contained in:
lynx
2023-08-01 13:53:00 +08:00
parent b2c23d5cf8
commit d91e6f4d40
2 changed files with 6 additions and 6 deletions

View File

@@ -21,6 +21,7 @@ import (
"github.com/libp2p/go-libp2p/p2p/discovery/mdns"
"github.com/libp2p/go-libp2p/p2p/discovery/routing"
"github.com/libp2p/go-libp2p/p2p/discovery/util"
"github.com/multiformats/go-multiaddr"
)
const (
@@ -43,6 +44,7 @@ type Engine struct {
dht *dht.IpfsDHT
discovery *routing.RoutingDiscovery
mdns mdns.Service
mdnsMap xsync.Map[peer.ID, []multiaddr.Multiaddr]
relayChan chan peer.AddrInfo
@@ -309,9 +311,9 @@ func (e *Engine) addConn(dst netip.Addr) (PacketChan, error) {
ticker.Stop()
return
case <-ticker.C:
info := e.host.Peerstore().PeerInfo(id)
if info.ID == id && len(info.Addrs) > 0 {
peerInfo <- info
info, ok := e.mdnsMap.Load(id)
if ok && len(info) > 0 {
peerInfo <- peer.AddrInfo{ID: id, Addrs: info}
}
}
}

View File

@@ -1,12 +1,10 @@
package engine
import (
"time"
"github.com/libp2p/go-libp2p/core/peer"
)
func (e *Engine) HandlePeerFound(pi peer.AddrInfo) {
e.log.Infof(e.ctx, "find %s by mDNS", pi)
e.host.Peerstore().AddAddrs(pi.ID, pi.Addrs, 5*time.Minute)
e.mdnsMap.Store(pi.ID, pi.Addrs)
}