go-ethereum/p2p
Péter Szilágyi 6ef3a16869
p2p/enode: use unix timestamp as base ENR sequence number (#19903)
This PR ensures that wiping all data associated with a node (apart from its nodekey)
will not generate already used sequence number for the ENRs, since all remote nodes
would reject them until they out-number the previously published largest one.

The big complication with this scheme is that every local update to the ENR can
potentially bump the sequence number by one. In order to ensure that local updates
do not outrun the clock, the sequence number is a millisecond-precision timestamp,
and updates are throttled to occur at most once per millisecond.

Co-authored-by: Felix Lange <fjl@twurst.com>
2021-09-07 12:36:48 +02:00
..
discover p2p/enode: use unix timestamp as base ENR sequence number (#19903) 2021-09-07 12:36:48 +02:00
dnsdisc p2p/dnsdisc: fix crash when iterator closed before first call to Next (#22906) 2021-05-20 09:24:41 +02:00
enode p2p/enode: use unix timestamp as base ENR sequence number (#19903) 2021-09-07 12:36:48 +02:00
enr p2p/enr: fix decoding of incomplete lists (#22484) 2021-03-11 15:09:25 +01:00
msgrate p2p/msgrate: return capacity as integer, clamp to max uint32 (#22943) 2021-05-27 19:43:55 +03:00
nat p2p/nat: skip TestUPNP in non-CI environments if discover fails (#22877) 2021-05-25 22:37:30 +02:00
netutil all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
nodestate les: move client pool to les/vflux/server (#22495) 2021-04-06 20:42:50 +02:00
rlpx p2p/rlpx: reduce allocation and syscalls (#22899) 2021-05-27 10:19:13 +02:00
simulations p2p/simulations: fix unlikely crash in probabilistic connect (#23200) 2021-07-29 16:03:50 +02:00
tracker p2p/tracker: only reschedule wake if previous didn't run 2021-04-27 21:47:59 +03:00
dial.go p2p, p2p/enode: fix data races (#23434) 2021-08-24 12:22:56 +02:00
dial_test.go p2p: new dial scheduler (#20592) 2020-02-13 11:10:03 +01:00
message.go eth: implement eth66 (#22241) 2021-02-18 18:54:29 +02:00
message_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
metrics.go eth/protocols, prp/tracker: add support for req/rep rtt tracking (#22608) 2021-04-22 11:42:46 +03:00
peer.go eth: unregister peer only when handler exits (#22908) 2021-05-25 22:20:36 +02:00
peer_error.go p2p: fix array out of bounds issue (#23165) 2021-07-06 09:33:51 +02:00
peer_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
protocol.go cmd/devp2p, p2p: dial using node iterator, discovery crawler (#20132) 2019-10-29 17:08:57 +02:00
server.go p2p: remove term "whitelist" (#23295) 2021-07-29 17:50:18 +02:00
server_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
transport.go p2p/rlpx: reduce allocation and syscalls (#22899) 2021-05-27 10:19:13 +02:00
transport_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
util.go p2p: new dial scheduler (#20592) 2020-02-13 11:10:03 +01:00
util_test.go p2p: new dial scheduler (#20592) 2020-02-13 11:10:03 +01:00