merge-script
a33bd767a3
Merge bitcoin/bitcoin#33464 : p2p: Use network-dependent timers for inbound inv scheduling
...
0f7d4ee4e8 p2p: Use different inbound inv timer per network (Martin Zumsande)
94db966a3b net: use generic network key for addrcache (Martin Zumsande)
Pull request description:
Currently, `NextInvToInbounds` schedules each round of `inv` at the same time for all inbound peers. It's being done this way because with a separate timer per peer (like it's done for outbounds), an attacker could do multiple connections to learn about the time a transaction arrived. (#13298 ).
However, having a single timer for inbounds of all networks is also an obvious fingerprinting vector: Connecting to a suspected pair of privacy-network and clearnet addresses and observing the `inv` pattern makes it trivial to confirm or refute that they are the same node.
This PR changes it such that a separate timer is used for each network.
It uses the existing method from `getaddr` caching and generalizes it to be saved in a new field `m_network_key` in `CNode` which will be used for both `getaddr` caching and `inv` scheduling, and can also be used for any future anti-fingerprinting measures.
ACKs for top commit:
sipa:
utACK 0f7d4ee4e8
stratospher:
reACK 0f7d4ee .
naiyoma:
Tested ACK 0f7d4ee4e8
danielabrozzoni:
reACK 0f7d4ee4e8
Tree-SHA512: e197c3005b2522051db432948874320b74c23e01e66988ee1ee11917dac0923f58c1252fa47da24e68b08d7a355d8e5e0a3ccdfa6e4324cb901f21dfa880cd9c
2025-10-03 23:45:17 +01:00
..
2025-09-10 08:03:17 -04:00
2025-09-25 14:36:40 -07:00
2025-09-16 06:26:01 -04:00
2025-08-11 16:47:43 +01:00
2025-08-07 09:27:25 +01:00
2025-09-08 18:39:55 +01:00
2025-09-07 17:28:31 +02:00
2025-09-17 04:57:09 -04:00
2025-09-17 04:57:09 -04:00
2025-09-17 05:30:43 -04:00
2025-09-11 13:46:20 -07:00
2025-05-30 16:51:49 +01:00
2025-02-21 10:43:01 +01:00
2025-05-13 18:07:47 +01:00
2025-09-25 08:18:20 -04:00
2025-08-21 15:16:54 +02:00
2025-08-11 16:47:51 +01:00
2025-09-10 12:26:58 +01:00
2025-10-01 16:39:56 +02:00
2025-08-06 09:33:17 -04:00
2025-07-22 09:35:01 +01:00
2025-05-23 10:09:39 +01:00
2025-10-03 23:45:17 +01:00
2025-07-23 13:29:07 -07:00
2025-09-30 15:59:09 -07:00
2025-09-29 13:59:44 -04:00
2025-08-11 16:47:43 +01:00
2025-06-03 15:13:54 +02:00
2025-07-10 11:24:40 +02:00
2024-07-30 14:06:58 -04:00
2025-03-23 21:58:39 +01:00
2024-09-20 12:55:22 -04:00
2024-11-11 12:47:53 -03:00
2024-11-11 12:47:53 -03:00
2025-01-09 10:11:46 -05:00
2025-09-11 16:50:26 +02:00
2025-07-25 09:50:50 +02:00
2025-05-19 16:40:33 +01:00
2025-06-03 15:13:54 +02:00
2025-03-12 19:46:54 +01:00
2025-06-03 15:13:57 +02:00
2025-06-03 15:13:57 +02:00
2025-06-03 19:56:55 +02:00
2025-03-12 19:46:54 +01:00
2025-09-05 15:46:44 +01:00
2025-06-10 15:14:24 +02:00
2025-08-04 15:33:25 -06:00
2025-06-10 15:14:24 +02:00
2025-06-10 15:14:24 +02:00
2025-05-17 09:36:25 +02:00
2025-06-10 15:14:24 +02:00
2025-01-15 12:15:40 +01:00
2025-06-10 15:14:24 +02:00
2025-05-09 15:07:04 +02:00
2025-09-17 04:57:09 -04:00
2025-06-10 15:14:24 +02:00
2025-09-17 04:57:09 -04:00
2025-08-27 03:33:32 +10:00
2025-08-27 03:33:32 +10:00
2025-08-13 00:08:37 -03:00
2025-08-13 00:08:37 -03:00
2025-07-25 09:50:50 +02:00
2025-06-03 15:13:57 +02:00
2024-11-14 13:41:02 -05:00
2025-09-03 11:23:30 +01:00
2025-05-19 22:06:48 +00:00
2025-05-20 09:30:41 +01:00
2025-05-29 11:18:36 +01:00
2025-07-14 09:41:17 -04:00
2025-09-17 04:57:09 -04:00
2024-12-04 14:09:05 -05:00
2025-06-03 15:13:57 +02:00
2025-03-12 19:46:54 +01:00
2024-11-26 20:47:08 -05:00
2025-04-22 13:16:54 +01:00
2025-01-22 17:31:22 -05:00
2025-05-19 16:40:33 +01:00
2025-08-06 15:46:18 -07:00
2025-07-22 10:26:15 -07:00
2025-04-30 14:51:21 +02:00
2025-04-30 14:51:21 +02:00
2025-02-21 10:41:27 +01:00
2025-01-21 00:38:03 +10:00
2025-07-25 09:50:50 +02:00
2024-08-13 07:44:31 +02:00
2025-06-16 15:33:19 +02:00
2024-07-24 09:39:35 +02:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-09-02 11:59:48 +01:00
2025-08-11 16:47:43 +01:00
2025-07-03 06:26:23 -04:00
2025-09-16 06:26:01 -04:00
2024-11-04 17:08:21 +01:00
2025-06-09 14:17:33 +02:00
2025-06-09 14:17:33 +02:00
2025-09-30 15:23:20 -07:00
2025-01-16 21:06:21 +00:00
2025-06-03 15:13:57 +02:00
2025-09-16 21:46:18 +02:00
2025-03-12 19:46:54 +01:00
2025-08-12 11:28:36 -04:00
2025-08-12 11:28:36 -04:00
2025-09-08 11:18:51 +02:00
2025-07-17 12:43:04 -04:00
2024-11-04 18:46:40 +01:00
2025-08-11 15:53:34 +01:00
2025-08-11 16:47:51 +01:00
2025-06-11 11:11:48 -07:00
2025-08-01 12:07:26 +01:00
2025-02-21 10:41:27 +01:00
2025-10-03 23:45:17 +01:00
2025-09-22 10:46:26 +10:00
2025-10-03 23:45:17 +01:00
2025-10-03 23:45:17 +01:00
2025-06-03 08:09:21 +01:00
2025-03-12 19:46:54 +01:00
2025-09-16 06:26:01 -04:00
2025-08-04 13:38:26 -04:00
2025-07-25 09:50:50 +02:00
2025-07-25 09:50:50 +02:00
2025-06-18 18:11:28 -03:00
2025-06-18 18:11:28 -03:00
2025-04-22 17:11:24 +10:00
2025-06-03 15:13:57 +02:00
2025-07-25 16:23:37 -07:00
2025-07-08 20:00:51 +01:00
2025-07-08 20:00:51 +01:00
2025-05-14 14:00:43 -07:00
2025-05-14 14:00:43 -07:00
2025-05-21 10:44:26 -07:00
2025-05-21 10:44:26 -07:00
2025-07-25 09:50:50 +02:00
2025-07-16 13:19:18 -07:00
2025-05-08 16:49:58 +01:00
2025-08-11 16:26:35 +01:00
2025-06-16 18:09:14 +00:00
2025-05-10 03:31:30 +00:00
2025-07-29 16:25:47 -07:00
2025-08-11 16:47:43 +01:00
2025-03-12 19:46:54 +01:00
2025-07-16 14:33:07 -07:00
2025-07-16 14:33:07 -07:00
2025-08-22 14:25:39 +00:00
2025-08-22 14:25:39 +00:00
2025-05-08 20:13:46 +00:00
2025-01-15 12:16:08 +01:00
2025-05-13 12:09:40 +02:00
2025-05-13 12:09:40 +02:00
2025-04-07 15:59:41 +02:00
2025-01-15 15:44:55 +01:00
2025-09-10 08:03:17 -04:00
2025-09-10 08:03:17 -04:00
2025-08-27 03:33:32 +10:00
2025-08-27 03:33:32 +10:00
2025-07-23 15:01:18 +01:00
2025-07-23 15:01:18 +01:00
2025-04-09 15:59:59 +01:00
2025-04-09 15:59:59 +01:00
2025-09-29 16:25:54 -04:00
2025-08-20 10:45:36 -07:00
2025-08-01 15:12:37 +02:00
2025-08-01 15:12:37 +02:00
2025-01-21 00:38:03 +10:00
2025-04-30 14:51:21 +02:00
2025-04-30 14:51:21 +02:00