Sjors Provoost
1d029c23a1
validation: refactor TestBlockValidity
...
A later commit adds checkBlock() to the Mining interface. In order to
avoid passing BlockValidationState over IPC, this commit first
refactors TestBlockValidity to return a boolean instead, and pass failure
reasons via a string.
TestBlockValidity is moved into ChainstateManager which allows some
simplifications.
Comments are expanded.
The ContextualCheckBlockHeader check is moved to after CheckBlock,
which is more similar to normal validation where context-free checks
are done first.
Validation failure reasons are no longer printed through LogError(),
since it depends on the caller whether this implies an actual bug
in the node, or an externally sourced block that happens to be invalid.
When called from getblocktemplate, via BlockAssembler::CreateNewBlock(),
this method already throws an std::runtime_error if validation fails.
Additionally it moves the inconclusive-not-best-prevblk check from RPC
code to TestBlockValidity.
2025-03-14 09:59:05 +01:00
..
2025-03-14 11:23:35 +08:00
2025-02-12 10:31:43 -05:00
2025-03-13 11:13:13 +00:00
2025-02-07 09:11:27 +01:00
2025-01-09 15:17:02 +01:00
2025-02-13 12:30:15 -05:00
2025-02-19 17:20:58 +01:00
2025-02-19 17:20:57 +01:00
2025-03-13 11:13:13 +00:00
2025-01-16 11:09:56 +00:00
2024-08-29 13:49:57 +02:00
2025-03-05 15:36:56 +00:00
2025-03-14 09:59:05 +01:00
2025-03-11 16:00:46 +00:00
2024-07-08 11:12:01 +02:00
2025-03-12 15:42:38 +01:00
2025-03-14 09:59:05 +01:00
2025-01-21 13:17:20 -05:00
2024-11-04 14:59:46 -05:00
2024-12-10 21:51:48 +01:00
2025-03-14 08:09:15 +08:00
2025-02-21 11:11:29 +00:00
2025-02-18 12:29:18 +00:00
2025-03-14 11:23:35 +08:00
2024-10-25 18:09:36 +01:00
2024-09-14 20:33:32 +03:00
2024-10-28 12:36:19 +00:00
2024-07-30 14:06:58 -04:00
2024-07-30 14:06:58 -04: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-01-03 09:19:53 -05:00
2025-01-14 19:21:37 +01:00
2024-05-30 08:35:18 -04:00
2024-12-19 13:46:31 +01:00
2024-10-19 18:49:53 +02:00
2024-10-19 18:49:53 +02:00
2025-03-13 11:13:13 +00:00
2024-10-28 12:36:19 +00:00
2025-02-13 12:30:15 -05:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-01-15 12:15:40 +01:00
2024-10-28 12:36:19 +00:00
2025-01-16 21:06:21 +00:00
2024-08-29 13:49:57 +02:00
2024-07-08 11:12:01 +02:00
2025-03-13 11:13:13 +00:00
2025-02-13 12:30:15 -05:00
2024-11-14 13:41:02 -05:00
2024-11-14 13:41:02 -05:00
2025-03-06 15:39:58 -06:00
2024-12-03 18:02:37 -05:00
2025-01-14 19:21:37 +01:00
2024-10-28 12:35:49 +00:00
2024-11-11 14:14:39 +00:00
2025-02-20 22:18:51 +00:00
2024-12-04 14:09:05 -05:00
2024-12-02 13:52:34 +01:00
2024-06-07 13:55:23 -04:00
2024-11-26 20:47:08 -05:00
2024-12-05 14:37:47 +00:00
2024-06-07 13:55:23 -04:00
2024-07-04 22:35:29 +02:00
2024-11-30 20:19:08 +01:00
2024-11-30 20:19:08 +01:00
2024-08-13 07:44:31 +02:00
2024-08-29 13:49:57 +02:00
2024-07-24 09:39:35 +02:00
2024-11-04 14:59:46 -05:00
2025-03-04 14:23:18 -05:00
2024-07-08 11:12:01 +02:00
2025-02-13 12:30:15 -05:00
2025-02-13 12:30:15 -05:00
2024-11-04 17:08:21 +01:00
2024-06-26 15:28:26 -04:00
2024-06-12 16:19:50 -03:00
2025-03-13 11:13:13 +00:00
2025-01-16 21:06:21 +00:00
2024-10-27 15:38:54 +01:00
2024-08-04 08:52:22 +02:00
2024-08-04 08:51:36 +02:00
2024-10-01 11:31:39 +02:00
2024-10-01 11:31:39 +02:00
2024-11-04 14:19:40 -05:00
2024-10-29 11:58:51 -04:00
2024-11-04 18:46:40 +01:00
2024-07-08 11:12:01 +02:00
2025-03-13 11:13:13 +00:00
2024-10-01 21:55:18 -04:00
2024-07-08 11:12:01 +02:00
2025-02-14 15:10:09 -08:00
2025-02-13 12:38:55 +01:00
2025-01-13 21:53:56 +01:00
2025-01-13 21:53:56 +01:00
2024-10-10 12:22:12 +02:00
2024-09-10 11:20:40 -03:00
2025-01-22 11:29:05 +01:00
2025-01-22 11:29:05 +01:00
2024-09-11 17:41:26 +02:00
2024-10-26 23:44:15 +02:00
2024-10-26 23:44:15 +02:00
2024-07-11 19:08:46 +01:00
2024-12-16 10:39:28 +01:00
2024-08-28 19:09:51 +02:00
2025-02-19 10:28:13 -05:00
2025-01-14 19:01:53 +01:00
2024-10-21 23:24:17 +02:00
2025-01-22 15:01:23 -05:00
2024-12-19 14:41:21 +01:00
2024-08-29 13:49:57 +02:00
2024-12-19 13:46:52 +01:00
2024-11-04 18:46:40 +01:00
2024-12-19 14:39:55 +01:00
2024-07-08 11:12:01 +02:00
2024-07-08 11:12:01 +02:00
2025-01-15 12:16:08 +01:00
2025-02-13 12:30:15 -05:00
2024-11-14 13:41:02 -05:00
2024-09-18 20:03:47 +02:00
2025-01-15 15:44:55 +01:00
2024-12-31 00:04:20 -03:00
2024-12-31 00:04:20 -03:00
2025-02-07 13:55:57 -05:00
2025-02-07 13:55:57 -05:00
2025-01-29 18:05:16 -05:00
2025-01-29 18:05:16 -05:00
2024-07-24 09:15:34 +02:00
2025-01-03 09:19:53 -05:00
2025-03-14 09:59:05 +01:00
2025-03-14 09:59:05 +01:00
2024-10-08 15:25:47 +00:00
2024-07-25 11:01:22 +01:00
2024-07-08 11:12:01 +02:00