INNER CODE UNIT · Go
initDHT
kluctl/kluctl · internal/ipfs-exchange-info/main.go:110
func initDHT(ctx context.Context, h host.Host) (*dht.IpfsDHT, error) {
// Start a DHT, for use in peer discovery. We can't just make a new DHT
// client because we want each peer to maintain its own local copy of the
// DHT, so that the bootstrapping node of the DHT can go down without
// inhibiting future peer discovery.
kademliaDHT, err := dht.New(ctx, h)
if err != nil {
return nil, err
}
if err = kademliaDHT.Bootstrap(ctx); err != nil {
return nil, err
}
var wg sync.WaitGroup
for _, peerAddr := range dht.DefaultBootstrapPeers {
peerinfo, _ := peer.AddrInfoFromP2pAddr(peerAddr)
wg.Add(1)
go func() {
defer wg.Done()