diff options
author | Sonic <sonic@dexon.org> | 2019-04-03 16:28:29 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-06-15 22:09:55 +0800 |
commit | c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c (patch) | |
tree | def84e1c48925e637ff47bb9c8ee382666e4f752 /p2p | |
parent | aff2c3533badc7415c223580c591a3274330185c (diff) | |
download | go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.gz go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.bz2 go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.lz go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.xz go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.zst go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.zip |
dex: remove node table (#330)
* dex: remove node table
Node table is not so useful, go back to rely on kademlia
* p2p: fix direct dial still have resolve delay
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/dial.go | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/p2p/dial.go b/p2p/dial.go index 583f02f6b..8bb39f9e8 100644 --- a/p2p/dial.go +++ b/p2p/dial.go @@ -226,7 +226,9 @@ func (s *dialstate) newTasks(nRunning int, peers map[enode.ID]*Peer, now time.Ti delete(s.direct, t.dest.ID()) case nil: s.dialing[id] = t.flags - newtasks = append(newtasks, t) + // New a task instance with no lastResolved, resolveDelay here, + // so that we can pass the resolve delay check. + newtasks = append(newtasks, &dialTask{flags: t.flags, dest: t.dest}) } } @@ -363,12 +365,9 @@ func (t *dialTask) resolve(srv *Server) bool { resolved := srv.ntab.Resolve(t.dest) t.lastResolved = time.Now() if resolved == nil { - // Only backoff delay if this is not direct connection. - if t.flags&directDialedConn == 0 { - t.resolveDelay *= 2 - if t.resolveDelay > maxResolveDelay { - t.resolveDelay = maxResolveDelay - } + t.resolveDelay *= 2 + if t.resolveDelay > maxResolveDelay { + t.resolveDelay = maxResolveDelay } log.Debug("Resolving node failed", "id", t.dest.ID(), "newdelay", t.resolveDelay) return false |