Skip to content

Commit

Permalink
Merge pull request #424 from hacdias/fix/prioritize-closer-peers
Browse files Browse the repository at this point in the history
fix: prioritize closer peers
  • Loading branch information
Stebalien committed Dec 12, 2019
2 parents a7093c7 + 0449555 commit c08274f
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions dht.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,17 @@ import (
ds "github.com/ipfs/go-datastore"
logging "github.com/ipfs/go-log"
"github.com/jbenet/goprocess"
"github.com/jbenet/goprocess/context"
goprocessctx "github.com/jbenet/goprocess/context"
kb "github.com/libp2p/go-libp2p-kbucket"
"github.com/libp2p/go-libp2p-record"
record "github.com/libp2p/go-libp2p-record"
recpb "github.com/libp2p/go-libp2p-record/pb"
"github.com/multiformats/go-base32"
)

var logger = logging.Logger("dht")

const BaseConnMgrScore = 5

// IpfsDHT is an implementation of Kademlia with S/Kademlia modifications.
// It is used to implement the base Routing module.
type IpfsDHT struct {
Expand Down Expand Up @@ -144,11 +146,13 @@ func NewDHTClient(ctx context.Context, h host.Host, dstore ds.Batching) *IpfsDHT
}

func makeDHT(ctx context.Context, h host.Host, dstore ds.Batching, protocols []protocol.ID, bucketSize int) *IpfsDHT {
rt := kb.NewRoutingTable(bucketSize, kb.ConvertPeerID(h.ID()), time.Minute, h.Peerstore())
self := kb.ConvertPeerID(h.ID())
rt := kb.NewRoutingTable(bucketSize, self, time.Minute, h.Peerstore())
cmgr := h.ConnManager()

rt.PeerAdded = func(p peer.ID) {
cmgr.TagPeer(p, "kbucket", 5)
commonPrefixLen := kb.CommonPrefixLen(self, kb.ConvertPeerID(p))
cmgr.TagPeer(p, "kbucket", BaseConnMgrScore+commonPrefixLen)
}

rt.PeerRemoved = func(p peer.ID) {
Expand Down

0 comments on commit c08274f

Please sign in to comment.