aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/discover/node.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@users.noreply.github.com>2019-01-30 00:39:20 +0800
committerFelix Lange <fjl@twurst.com>2019-01-30 00:50:15 +0800
commit4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74 (patch)
tree9f4752c2ead76a83998eb9aec12fb1b136cf51b6 /p2p/discover/node.go
parent1f3dfed19e0d1e0e2536d547e8fd37e9d0ad3cdf (diff)
downloaddexon-4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74.tar
dexon-4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74.tar.gz
dexon-4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74.tar.bz2
dexon-4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74.tar.lz
dexon-4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74.tar.xz
dexon-4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74.tar.zst
dexon-4cd90e02e23ecf2bb11bcb4bba4fea2ae164ef74.zip
p2p/discover, p2p/enode: rework endpoint proof handling, packet logging (#18963)
This change resolves multiple issues around handling of endpoint proofs. The proof is now done separately for each IP and completing the proof requires a matching ping hash. Also remove waitping because it's equivalent to sleep. waitping was slightly more efficient, but that may cause issues with findnode if packets are reordered and the remote end sees findnode before pong. Logging of received packets was hitherto done after handling the packet, which meant that sent replies were logged before the packet that generated them. This change splits up packet handling into 'preverify' and 'handle'. The error from 'preverify' is logged, but 'handle' happens after the message is logged. This fixes the order. Packet logs now contain the node ID.
Diffstat (limited to 'p2p/discover/node.go')
-rw-r--r--p2p/discover/node.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/p2p/discover/node.go b/p2p/discover/node.go
index 7ddf04fe8..8d4af166b 100644
--- a/p2p/discover/node.go
+++ b/p2p/discover/node.go
@@ -33,7 +33,8 @@ import (
// The fields of Node may not be modified.
type node struct {
enode.Node
- addedAt time.Time // time when the node was added to the table
+ addedAt time.Time // time when the node was added to the table
+ livenessChecks uint // how often liveness was checked
}
type encPubkey [64]byte