diff --git a/core/core.go b/core/core.go index f8f2ed2bb41a7717c60d7760bd83eac7b798fa50..8543ff0e90510dfe4e40cb502c7957baaeb5e388 100644 --- a/core/core.go +++ b/core/core.go @@ -103,7 +103,7 @@ func NewIpfsNode(cfg *config.Config, online bool) (*IpfsNode, error) { return nil, err } - route = dht.NewDHT(local, net, dhts, d) + route = dht.NewDHT(local, peerstore, net, dhts, d) dhts.Handler = route // wire the handler to the service. // TODO(brian): pass a context to DHT for its async operations diff --git a/routing/dht/dht.go b/routing/dht/dht.go index 756c1803a8007a957a1e7dbbec5ca27511e6527a..8e26241b1a16820f1fe3d7703a88addfeea7b389 100644 --- a/routing/dht/dht.go +++ b/routing/dht/dht.go @@ -36,6 +36,9 @@ type IpfsDHT struct { // Local peer (yourself) self *peer.Peer + // Other peers + peerstore peer.Peerstore + // Local data datastore ds.Datastore dslock sync.Mutex @@ -53,12 +56,13 @@ type IpfsDHT struct { } // NewDHT creates a new DHT object with the given peer as the 'local' host -func NewDHT(p *peer.Peer, net inet.Network, sender inet.Sender, dstore ds.Datastore) *IpfsDHT { +func NewDHT(p *peer.Peer, ps peer.Peerstore, net inet.Network, sender inet.Sender, dstore ds.Datastore) *IpfsDHT { dht := new(IpfsDHT) dht.network = net dht.sender = sender dht.datastore = dstore dht.self = p + dht.peerstore = ps dht.providers = NewProviderManager(p.ID) dht.shutdown = make(chan struct{})