dergoegge 24736350e9 [net processing] Don't process mutated blocks
We preemptively perform a block mutation check before further processing
a block message (similar to early sanity checks on other messsage
types). The main reasons for this change are as follows:

- `CBlock::GetHash()` is a foot-gun without a prior mutation check, as
  the hash returned only commits to the header but not to the actual
  transactions (`CBlock::vtx`) contained in the block.
- We have observed attacks that abused mutated blocks in the past, which
  could have been prevented by simply not processing mutated blocks
  (e.g. https://github.com/bitcoin/bitcoin/pull/27608).

Github-Pull: #29412
Rebased-From: 49257c0304828a185c273fcb99742c54bbef0c8e
2024-03-05 10:24:17 +00:00
..
2023-10-12 11:27:19 +02:00
2023-08-08 17:50:41 +02:00
2024-01-19 16:12:57 +00:00
2023-09-19 16:38:08 +02:00
2024-02-16 17:29:46 +00:00
2023-10-12 11:27:19 +02:00
2023-10-12 11:27:19 +02:00
2023-10-12 11:27:19 +02:00
2023-03-23 12:55:18 +01:00
2022-12-24 23:49:50 +00:00
2023-06-16 10:38:19 +01:00
2023-06-16 10:38:19 +01:00
2022-12-24 23:49:50 +00:00
2023-09-19 16:38:08 +02:00
2023-10-12 11:27:19 +02:00
2023-11-14 15:46:10 +00:00
2023-10-20 14:03:34 +01:00
2023-06-16 10:38:19 +01:00
2023-09-13 11:37:45 +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-10-12 11:27:19 +02:00
2023-10-12 11:27:19 +02:00
2023-01-12 13:42:44 +00:00
2023-06-16 10:38:19 +01:00
2023-07-19 18:12:42 +02:00