Andrew Chow
035ae61c5a
Merge bitcoin/bitcoin#27577 : p2p: give seednodes time before falling back to fixed seeds
...
30778124b8 net: Give seednodes time before falling back to fixed seeds (Martin Zumsande)
Pull request description:
`-seednode` is an alternative bootstrap mechanism - when choosing it, we make a `AddrFetch` connection to the specified peer, gather addresses from them, and then disconnect. Presumably, if users specify a seednode they prefer addresses from that node over fixed seeds.
However, when disabling dns seeds and specifiying `-seednode`, `CConnman::ProcessAddrFetch()` immediately removes the entry from `m_addr_fetches` (before the seednode could give us addresses) - and once `m_addr_fetches` is empty, `ThreadOpenConnections` will add fixed seeds, resulting in a "race" between the fixed seeds and seednodes filling up AddrMan.
This PR suggests to check for any provided `-seednode` arg instead of using the size of `m_addr_fetches`, thus delaying the querying of fixed seeds for 1 minute when specifying any seednode (as we already do for `addnode` peers).
That way, we actually give the seednodes a chance for to provide us with addresses before falling back to fixed seeds.
This can be tested with `bitcoind -debug=net -dnsseed=0 -seednode=(...)` on a node without `peers.dat` and observing the debug log.
ACKs for top commit:
ajtowns:
utACK 30778124b8
achow101:
ACK 30778124b8
dergoegge:
Code review ACK 30778124b8
sr-gi:
ACK [3077812 ](30778124b8 ) with a tiny nit, feel free to ignore it
Tree-SHA512: 96446eb34c0805f10ee158a00a3001a07029e795ac40ad5638228d426e30e9bb836c64ac05d145f2f9ab23ec5a528f3a416e3d52ecfdfb0b813bd4b1ebab3c01
2023-06-23 17:39:58 -04:00
..
2023-06-16 21:00:20 -03:00
2023-06-20 10:23:08 +02:00
2023-04-03 14:44:48 +01:00
2023-06-12 19:47:19 +01:00
2022-08-13 13:55:38 +01:00
2023-05-04 20:58:01 +01:00
2023-06-08 16:38:36 -03:00
2023-06-15 10:27:56 -06:00
2023-06-12 12:54:49 -04:00
2023-05-20 12:08:13 +02:00
2023-06-14 23:15:20 +02:00
2022-09-29 16:43:30 +01:00
2023-01-31 18:48:50 +01:00
2022-10-23 15:03:04 +01:00
2023-06-22 13:20:36 -04:00
2023-06-14 22:39:26 +01:00
2022-12-24 23:49:50 +00:00
2023-06-12 12:54:49 -04:00
2023-06-20 10:23:08 +02:00
2023-05-20 12:08:13 +02:00
2023-04-14 10:35:51 -04:00
2023-06-20 10:23:08 +02:00
2023-06-21 16:40:25 +01:00
2023-06-20 10:23:08 +02:00
2023-06-15 16:21:29 +02:00
2023-06-23 16:57:11 -04:00
2023-05-26 13:41:07 -03:00
2022-04-26 10:43:33 +01:00
2023-03-26 20:18:13 +01:00
2023-05-30 17:26:51 +02:00
2023-05-29 13:26:31 +02:00
2023-03-17 17:59:02 -07:00
2023-03-17 17:59:02 -07:00
2023-03-17 18:02:40 -07:00
2022-12-24 23:49:50 +00:00
2023-02-01 11:33:35 +01:00
2023-05-04 20:57:51 +01:00
2023-05-20 12:08:13 +02:00
2023-03-23 12:55:18 +01:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-05-30 17:15:22 +02:00
2023-05-20 12:08:13 +02:00
2023-05-20 12:08:13 +02:00
2023-05-20 12:08:13 +02:00
2023-05-20 12:08:13 +02:00
2023-06-10 11:10:29 -03:00
2023-05-20 12:08:13 +02:00
2023-02-15 14:42:28 -08:00
2023-01-31 19:34:35 +01:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-01-05 09:05:14 +00:00
2023-05-25 19:24:05 +02:00
2023-05-25 19:24:05 +02:00
2023-05-10 10:39:58 +02:00
2023-05-10 10:39:58 +02:00
2023-04-20 06:08:22 -07:00
2023-03-21 13:04:21 +00:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-03-23 19:38:38 +01:00
2023-03-23 19:38:38 +01:00
2023-02-03 18:15:42 +01:00
2023-01-26 10:44:05 +01:00
2023-05-20 12:08:13 +02:00
2023-01-31 11:50:10 +00:00
2023-03-23 12:55:18 +01:00
2023-03-23 12:55:18 +01:00
2023-03-15 16:42:42 +01:00
2023-03-15 16:42:42 +01:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-04-19 10:48:30 +02:00
2023-05-09 18:48:52 +02:00
2023-05-20 12:08:13 +02:00
2023-03-23 12:52:00 +01:00
2023-04-03 14:41:22 +01:00
2022-12-24 23:49:50 +00:00
2023-01-30 15:57:12 +00:00
2022-12-12 21:06:04 +00:00
2022-12-12 21:06:04 +00:00
2023-05-09 18:47:14 +02:00
2023-05-26 13:41:07 -03:00
2022-12-24 23:49:50 +00:00
2023-05-20 12:08:13 +02:00
2023-03-23 12:55:18 +01:00
2023-06-22 13:20:36 -04:00
2023-06-09 17:52:23 -03:00
2023-05-25 06:30:10 +00:00
2023-01-31 19:34:35 +01:00
2023-01-31 11:50:10 +00:00
2023-06-15 10:27:56 -06:00
2023-06-15 10:27:56 -06:00
2023-05-30 17:26:47 +02:00
2023-05-05 06:03:14 -06:00
2022-04-26 16:25:38 -04:00
2022-06-23 15:33:01 +02:00
2022-07-21 10:42:09 +01:00
2023-02-27 13:53:29 +00:00
2023-02-03 22:33:14 +01:00
2022-09-13 17:15:17 +01:00
2022-11-17 14:52:45 +00:00
2023-03-23 19:38:38 +01:00
2023-06-17 23:55:16 +05:30
2023-05-30 11:39:59 -04:00
2023-01-28 15:24:13 +00:00
2023-03-23 19:38:38 +01:00
2023-05-30 11:39:59 -04:00
2022-12-24 23:49:50 +00:00
2023-06-08 11:52:30 +02:00
2023-05-23 13:07:49 -04:00
2022-12-24 23:49:50 +00:00
2023-06-23 17:39:58 -04:00
2023-05-23 13:07:49 -04:00
2023-02-17 13:34:40 -05:00
2023-02-17 13:34:40 -05:00
2023-05-26 13:41:07 -03:00
2023-05-26 13:41:07 -03:00
2022-12-24 23:49:50 +00:00
2022-04-20 14:35:53 +01:00
2022-12-24 23:49:50 +00:00
2023-04-16 23:48:05 +02:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-05-20 12:08:13 +02:00
2023-05-15 10:18:58 +02:00
2023-04-21 14:06:12 -04:00
2023-04-21 14:06:12 -04:00
2023-01-13 09:40:57 +00:00
2023-01-13 09:40:57 +00:00
2023-05-20 17:20:01 +01:00
2023-02-15 14:58:47 +00:00
2023-04-03 14:44:48 +01:00
2023-06-12 10:24:14 -03:00
2022-03-10 12:01:53 +01:00
2023-01-12 13:42:44 +00:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-01-31 11:50:10 +00:00
2023-06-09 17:52:23 -03:00
2023-06-09 17:52:23 -03:00
2023-05-20 12:08:13 +02:00
2023-01-31 11:50:10 +00:00
2023-06-01 10:27:33 -04:00
2023-01-25 09:33:26 +01:00
2023-04-19 10:48:30 +02:00
2022-12-24 23:49:50 +00:00
2023-01-31 11:50:10 +00:00
2023-05-26 13:40:02 -03:00
2023-03-23 12:55:18 +01:00
2023-05-24 08:55:47 -04:00
2023-05-29 13:26:31 +02:00
2023-06-14 23:15:20 +02:00
2023-06-12 19:47:19 +01:00
2023-06-20 10:23:08 +02:00
2023-06-20 10:23:08 +02:00
2023-05-31 15:43:01 +01:00
2022-12-10 14:34:44 -06:00
2023-02-06 13:56:51 -05:00
2023-06-23 16:21:43 -04:00
2023-06-15 15:11:32 -04:00
2023-02-01 11:33:35 +01:00
2023-01-05 09:05:14 +00:00
2023-05-15 10:18:58 +02:00
2023-01-03 19:31:29 -06:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-05-20 12:08:13 +02:00