Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
p2p
go-p2p-kad-dht
Commits
c08274fb
Unverified
Commit
c08274fb
authored
Dec 12, 2019
by
Steven Allen
Committed by
GitHub
Dec 12, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #424 from hacdias/fix/prioritize-closer-peers
fix: prioritize closer peers
parents
a7093c7c
0449555d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
4 deletions
+8
-4
dht.go
dht.go
+8
-4
No files found.
dht.go
View file @
c08274fb
...
...
@@ -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
{
...
...
@@ -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
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment