go-ethereum/p2p
Felix Lange 94a8b296e4
p2p/discover: refactor node and endpoint representation (#29844)
Here we clean up internal uses of type discover.node, converting most code to use
enode.Node instead. The discover.node type used to be the canonical representation of
network hosts before ENR was introduced. Most code worked with *node to avoid conversions
when interacting with Table methods. Since *node also contains internal state of Table and
is a mutable type, using *node outside of Table code is prone to data races. It's also
cleaner not having to wrap/unwrap *enode.Node all the time.

discover.node has been renamed to tableNode to clarify its purpose.

While here, we also change most uses of net.UDPAddr into netip.AddrPort. While this is
technically a separate refactoring from the *node -> *enode.Node change, it is more
convenient because *enode.Node handles IP addresses as netip.Addr. The switch to package
netip in discovery would've happened very soon anyway.

The change to netip.AddrPort stops at certain interface points. For example, since package
p2p/netutil has not been converted to use netip.Addr yet, we still have to convert to
net.IP/net.UDPAddr in a few places.
2024-05-29 15:02:26 +02:00
..
discover p2p/discover: refactor node and endpoint representation (#29844) 2024-05-29 15:02:26 +02:00
dnsdisc p2p/dnsdisc: using clear builtin func (#29418) 2024-04-04 12:19:48 +02:00
enode p2p/enode: fix TCPEndpoint (#29827) 2024-05-23 23:17:51 +02:00
enr p2p/enode: fix endpoint determination for IPv6 (#29801) 2024-05-23 14:27:03 +02:00
msgrate log: remove lazy, remove unused interfaces, unexport methods (#28622) 2023-12-05 11:54:44 +01:00
nat p2p/nat: fix typos in comments (#29536) 2024-04-15 14:58:17 +02:00
netutil p2p: initialize maps with known size (#27229) 2023-05-10 10:52:26 +02:00
rlpx all: update to go version 1.22.1 (#28946) 2024-03-18 17:36:50 +01:00
simulations p2p/simulations: remove stale information about docker adapter (#29874) 2024-05-29 12:09:58 +02:00
tracker all: fix some typos (#25551) 2022-08-19 09:00:21 +03:00
dial.go p2p: fix race in dialScheduler (#29235) 2024-03-12 19:23:24 +01:00
dial_test.go p2p: initialize maps with known size (#27229) 2023-05-10 10:52:26 +02:00
message.go p2p: use atomic types (#27764) 2023-08-01 23:20:52 +02:00
message_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
metrics.go p2p: add inbound and outbound peers metric (#29424) 2024-04-02 21:18:28 +02:00
peer.go all: remove dependency on golang.org/exp (#29314) 2024-03-25 07:50:18 +01:00
peer_error.go p2p: use errors.Is for error comparison (#24882) 2022-06-07 17:27:21 +02:00
peer_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
protocol.go all: update golang/x/ext and fix slice sorting fallout (#27909) 2023-08-12 00:04:12 +02:00
server.go p2p/discover: refactor node and endpoint representation (#29844) 2024-05-29 15:02:26 +02:00
server_nat.go p2p: fix accidental termination of portMappingLoop (#28911) 2024-02-05 22:00:46 +01:00
server_nat_test.go cmd/bootnode, p2p: support for alternate mapped ports (#26359) 2023-07-14 14:58:27 +02:00
server_test.go cmd/bootnode, p2p: support for alternate mapped ports (#26359) 2023-07-14 14:58:27 +02:00
transport.go p2p, log, rpc: use errors.New to replace fmt.Errorf with no parameters (#29074) 2024-02-26 11:25:35 +02:00
transport_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
util.go all: assign zero after resize in implementations of heap.Interface (#26296) 2022-12-05 13:49:54 +01:00
util_test.go p2p: new dial scheduler (#20592) 2020-02-13 11:10:03 +01:00