Loading
Specify Hard Fork 2: Tailstorm, script/VM and validation changes
Adds the Nexa Hard Fork 2 consensus changes to the specification, based on the feature overview in nexa!878 (merged) (doc/hf2.md) with every rule verified against the node source on dev.
New pages:
docs/upgrades/hard-fork-2.md— overview page: the 2-phase MTP activation mechanism, per-network activation parameters, and a linked summary of every change.docs/blocks/tailstorm.md— full Tailstorm specification: subblocks and summary blocks (minerData versions 1/2 with field tables), the subblock DAG/grove and enhanced linking, uncle subblocks, proof of work (parent-hash binding, subblock target = ASERT x k, summary-target deficit compensation, chain work), two-level reorgs with the k-1 per-grove cap, tip consistency and snap-to-chain emergent consensus, block-size rules, andget_dagrecovery at the fork boundary.
Amended pages:
docs/script/op-codes/op_parse.md— group authority flags pushed as an 8-byte little-endian bitfield after activation.docs/script/op-codes/op_jump.md— OP_JUMP is no longer evaluated inside not-taken conditional branches.docs/script/bignum.md— bignum binary-operation argument order aligned with the integer operations, with the exact affected opcode list and a before/after example.docs/transactions/sighashtype.md— new output type 3, the retargetable ranged-outputs sighash, with its encoding and hashing exclusions.docs/transactions/validation/block-level-validation-rules.md— SigChecks limits no longer enforced after activation.docs/transactions/1transaction.md— the inputtyperow said "MUST be 0", stale since Fork 1 added read-only inputs; now documents types 0/1 and the reservation of further values for Hard Fork 2.docs/blocks/block.md— the Miner Data header row no longer claims the field must be empty; it links to the Tailstorm page.docs/blocks/adaptive-blocksize.md— thetailstorm_k * 100KBnext-max-block-size floor.docs/mining/difficulty-adjustment-algorithm.md— short section on how ASERT interacts with Tailstorm.
Note for reviewers: while verifying against the node source we found that the per-input SigChecks formula in docs/transactions/validation/network-level-validation-rules.md does not appear to exist in the current node code at all (only the per-transaction 3,000 admission check does). That page was deliberately left untouched here; it may deserve its own correction MR.
Co-authored with Claude Code