diff options
| author | bitflash-maintainer <noreply@bitflash.invalid> | 2026-09-02 14:16:48 +0000 |
|---|---|---|
| committer | bitflash-maintainer <noreply@bitflash.invalid> | 2026-09-02 14:16:48 +0000 |
| commit | 2ed8fae6088c99f1a5dfcfd760c1a24c2b2706db (patch) | |
| tree | f23023e737fc73cdb384e4840c033cfc5ac08e10 /src/imgui/imgui_widgets.cpp | |
| parent | 74c068829967bbff60da3506613844df4da1ae80 (diff) | |
mine: count sigops while selecting, not only when validating
CheckBlock() caps a block at MAX_BLOCK_SIGOPS and neither assembler counted
against it. Bytes do not bound what a block costs to verify: every OP_CHECKSIG
is an elliptic-curve verification, so a template comfortably inside the size
budget can still be one the network refuses for demanding more work than a
block is allowed to.
Counted with CTransaction::GetSigOpCount -- the same function CheckBlock()
sums, not a second implementation of it -- and seeded from the coinbase,
because CheckBlock() sums over all of vtx. The comparison matches too:
CheckBlock() fails on `> MAX_BLOCK_SIGOPS`, so a block exactly on the limit is
valid and selection accepts it. Assembly and validation differing by one is
the shape of the bug this series started with.
Unlike the size budget this takes no margin. There is no use for headroom in a
sigop count, so assembly holds itself to the consensus number exactly.
Assembly only; MAX_BLOCK_SIGOPS and the CheckBlock() test are unchanged.
Diffstat (limited to 'src/imgui/imgui_widgets.cpp')
0 files changed, 0 insertions, 0 deletions