go-ethereum/p2p
Felix Lange b8040a430e
cmd/utils: use eth DNS tree for snap discovery (#22808)
This removes auto-configuration of the snap.*.ethdisco.net DNS discovery tree.
Since measurements have shown that > 75% of nodes in all.*.ethdisco.net support
snap, we have decided to retire the dedicated index for snap and just use the eth
tree instead.

The dial iterators of eth and snap now use the same DNS tree in the default configuration,
so both iterators should use the same DNS discovery client instance. This ensures that
the record cache and rate limit are shared. Records will not be requested multiple times.

While testing the change, I noticed that duplicate DNS requests do happen even
when the client instance is shared. This is because the two iterators request the tree
root, link tree root, and first levels of the tree in lockstep. To avoid this problem, the
change also adds a singleflight.Group instance in the client. When one iterator
attempts to resolve an entry which is already being resolved, the singleflight object
waits for the existing resolve call to finish and returns the entry to both places.
2021-05-04 11:29:32 +02:00
..
discover p2p/discover: improve discv5 handling of IPv4-in-IPv6 addresses (#22703) 2021-04-23 18:18:10 +02:00
dnsdisc cmd/utils: use eth DNS tree for snap discovery (#22808) 2021-05-04 11:29:32 +02:00
enode p2p/enode: avoid crashing for invalid IP (#21981) 2020-12-09 20:21:31 +01:00
enr p2p/enr: fix decoding of incomplete lists (#22484) 2021-03-11 15:09:25 +01:00
nat all: simplify nested complexity and if blocks ending with a return statement (#21854) 2020-11-25 09:24:50 +01:00
netutil p2p/discover: implement v5.1 wire protocol (#21647) 2020-10-14 12:28:17 +02:00
nodestate les: move client pool to les/vflux/server (#22495) 2021-04-06 20:42:50 +02:00
rlpx p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
simulations cmd/utils: don't enumerate USB unless --usb is set (#22130) 2021-01-13 11:14:36 +01:00
tracker p2p/tracker: only reschedule wake if previous didn't run 2021-04-27 21:47:59 +03:00
dial.go p2p: add 0 port check in dialer (#21008) 2020-05-11 18:11:17 +03: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: don't wait for snap registration if we're not running snap (#22272) 2021-02-05 14:15:22 +01:00
peer_error.go p2p: fix some golint warnings (#16577) 2018-05-08 13:08:43 +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: fix minor typo and remove fd parameter in checkInboundConn (#22547) 2021-03-24 13:18:29 +01:00
server_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
transport.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +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