Ryan Ofsky
6082c84713
refactor: Add Chainstate::m_target_blockhash member
...
Make Chainstate objects aware of what block they are targeting. This makes
Chainstate objects more self contained, so it's possible for validation code to
look at one Chainstate object and know what blocks to connect to it without
needing to consider global validation state or look at other Chainstate
objects.
The motivation for this change is to make validation and networking code more
readable, so understanding it just requires knowing about chains and blocks,
not reasoning about assumeutxo download states. This change also enables
simplifications to the ChainstateManager interface in subsequent commits, and
could make it easier to implement new features like creating new Chainstate
objects to generate UTXO snapshots or index UTXO data.
Note that behavior of the MaybeCompleteSnapshotValidation function is not
changing here but some checks that were previously impossible to trigger like
the BASE_BLOCKHASH_MISMATCH case have been turned into asserts.
2025-12-12 06:49:59 -04:00
..
2025-12-09 17:16:15 +01:00
2025-12-09 10:44:33 +01:00
2025-09-16 06:26:01 -04:00
2025-12-10 15:28:50 -08:00
2025-08-07 09:27:25 +01:00
2025-12-09 17:17:47 +01:00
2025-12-03 13:47:17 +00:00
2025-09-17 04:57:09 -04:00
2025-12-01 10:53:22 -05:00
2025-12-06 13:06:28 +01:00
2025-12-06 13:06:21 +01:00
2025-10-16 13:49:49 +01:00
2025-12-04 19:52:49 +01:00
2025-10-13 12:33:23 +01:00
2025-12-12 06:49:59 -04:00
2025-12-02 13:35:16 +00:00
2025-11-03 14:39:48 +01:00
2025-11-21 12:38:03 +00:00
2025-12-06 13:06:21 +01:00
2025-12-09 08:01:49 -08:00
2025-10-15 09:49:11 +01:00
2025-11-03 14:39:48 +01:00
2025-12-12 06:49:59 -04:00
2025-11-11 11:12:50 +00:00
2025-12-09 17:16:15 +01:00
2025-12-08 20:11:51 -05:00
2025-10-28 15:33:57 +00:00
2025-11-25 12:24:26 +00:00
2025-12-06 13:06:28 +01: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
2025-11-27 14:33:57 +01:00
2024-11-11 12:47:53 -03:00
2025-01-09 10:11:46 -05:00
2025-09-12 22:28:41 +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-11-04 08:32:13 +01:00
2025-06-10 15:14:24 +02:00
2025-12-06 13:06:28 +01: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-10-06 19:41:35 +01:00
2025-11-18 14:06:54 -08:00
2025-06-10 15:14:24 +02:00
2025-10-06 19:41:35 +01:00
2025-12-09 17:16:17 +01:00
2025-12-09 17:16:17 +01:00
2025-10-02 12:53:55 +01:00
2025-10-02 12:53:55 +01:00
2025-10-28 16:08:44 +01:00
2025-10-28 16:08:44 +01: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-11-13 09:33:36 +01:00
2025-05-29 11:18:36 +01:00
2025-10-11 17:25:09 -04:00
2025-12-04 13:51:38 +00:00
2025-12-10 15:02:25 -08:00
2025-11-02 21:40:16 +01:00
2025-03-12 19:46:54 +01:00
2025-10-29 12:09:19 -04:00
2025-04-22 13:16:54 +01:00
2025-11-10 08:58:34 -08:00
2025-05-19 16:40:33 +01:00
2025-11-27 14:33:57 +01:00
2025-08-13 15:47:48 -07:00
2025-04-30 14:51:21 +02:00
2025-08-14 10:17:30 +10: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-11-27 14:33:57 +01:00
2025-12-08 16:46:03 +00:00
2025-03-12 19:46:54 +01:00
2025-03-12 19:46:54 +01:00
2025-09-12 22:28:41 +02:00
2025-09-12 22:28:41 +02:00
2025-11-27 14:33:59 +01:00
2025-12-06 13:06:28 +01:00
2024-11-04 17:08:21 +01:00
2025-12-09 10:44:33 +01:00
2025-06-09 14:17:33 +02:00
2025-12-12 06:49:59 -04:00
2025-01-16 21:06:21 +00:00
2025-06-03 15:13:57 +02:00
2025-10-14 16:25:52 -04:00
2025-09-30 11:06:43 -07:00
2025-12-04 19:52:49 +01:00
2025-12-04 19:53:06 +01:00
2025-12-09 10:44:33 +01: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-09-30 11:06:43 -07:00
2025-10-14 16:25:52 -04:00
2024-05-16 10:16:08 -05:00
2025-02-21 10:41:27 +01:00
2025-12-12 06:49:59 -04:00
2025-12-06 13:06:21 +01:00
2025-12-04 19:52:49 +01:00
2024-07-08 11:12:01 +02:00
2025-12-12 10:49:59 +00:00
2025-12-10 06:51:47 +10:00
2025-10-02 12:53:55 +01:00
2025-11-03 14:39:48 +01:00
2025-12-11 09:00:18 -08:00
2025-08-04 13:38:26 -04:00
2025-12-04 19:52:49 +01:00
2025-07-25 09:50:50 +02:00
2025-07-25 09:50:50 +02:00
2025-10-02 12:53:55 +01:00
2025-10-02 12:53:55 +01:00
2025-04-22 17:11:24 +10:00
2025-06-03 15:13:57 +02:00
2025-11-03 14:39:50 +01:00
2025-07-08 20:00:51 +01:00
2025-07-08 20:00:51 +01:00
2025-09-30 11:06:43 -07:00
2025-11-17 14:08:20 -08:00
2025-09-30 11:06:09 -07:00
2025-11-03 14:39:48 +01:00
2025-07-25 09:50:50 +02:00
2025-07-16 13:19:18 -07:00
2025-11-04 17:38:45 +00:00
2025-11-06 14:19:25 +01:00
2025-06-16 18:09:14 +00:00
2025-05-10 03:31:30 +00:00
2025-10-30 17:51:53 +01:00
2025-08-14 10:17:32 +10:00
2025-03-12 19:46:54 +01:00
2025-11-14 01:17:38 +02:00
2025-11-14 01:17:38 +02:00
2025-11-27 14:33:57 +01: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-12-04 19:52:49 +01:00
2025-05-13 12:09:40 +02:00
2025-12-09 10:44:33 +01:00
2025-08-28 10:09:32 -07:00
2025-11-25 07:36:50 -05:00
2025-11-25 07:36:50 -05:00
2025-12-04 19:52:49 +01:00
2025-11-30 10:57:48 -05: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-11-03 14:39:48 +01:00
2025-12-12 06:49:59 -04:00
2025-12-12 06:49:59 -04: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
2024-07-08 11:12:01 +02:00