v2.0.1: derive the fork target from the parent header #43

Merged
ignotusnemo merged 67 commits from v2 into main 2026-09-29 17:19:50 +00:00
Owner

Summary

At mainnet H210537, competing blocks with the same parent must share one ASERT target. The current v2.0.0 calculation uses each candidate's own timestamp, allowing an earlier timestamp to give that sibling more work. This patch derives the v2 target from the parent header and canonical anchor. The legacy rule remains unchanged through H210536. The v2 activation height is unchanged.

The patch also exposes the public opening of a pending contract call through getMempoolEntry and marks retained contract calls and closes in getBlockDetails. These fields help indexers retain already-public terms. The workspace version and release notes advance to 2.0.1. Release tooling now checks the active canonical, GitHub and GitLab repositories.

Verification

The isolated three-node test produced competing H10 blocks with different timestamps and the same target, then reconnected the nodes and confirmed a common H11. A separate isolated test reorganized across the H9/H10 boundary and verified contract rollback and recovery. The targeted difficulty, header, mempool contract, RPC classification and release-input tests pass.

## Summary At mainnet H210537, competing blocks with the same parent must share one ASERT target. The current v2.0.0 calculation uses each candidate's own timestamp, allowing an earlier timestamp to give that sibling more work. This patch derives the v2 target from the parent header and canonical anchor. The legacy rule remains unchanged through H210536. The v2 activation height is unchanged. The patch also exposes the public opening of a pending contract call through getMempoolEntry and marks retained contract calls and closes in getBlockDetails. These fields help indexers retain already-public terms. The workspace version and release notes advance to 2.0.1. Release tooling now checks the active canonical, GitHub and GitLab repositories. ## Verification The isolated three-node test produced competing H10 blocks with different timestamps and the same target, then reconnected the nodes and confirmed a common H11. A separate isolated test reorganized across the H9/H10 boundary and verified contract rollback and recovery. The targeted difficulty, header, mempool contract, RPC classification and release-input tests pass.
Add a fixed sixteen-slot object-contract envelope to HistoryStep while preserving the existing Tx8x2 body, authorization capacity and Meta-A domain. Include B25 and B255 research fixtures, adversarial cases and explicit full/direct measurement modes.

This is a research prototype. It does not freeze an ABI, matrix pack, activation rule or soundness claim.
Document the measured routes to proof-native contracts, the selected bounded object model and the exact B25 and B255 feasibility results. Include the standalone experiment harness, raw measurements, adversarial cases and reproduction instructions.

The study is authored by Ignotus Nemo and remains explicitly separate from a production ABI, frozen terminal or updated soundness certificate.
Bind authorization overflow to exact capacity. Add complete recursive proof and constrained receiver measurements after both legacy classes.
Bind configurable call limits into proof bank recipes.
Pass both frozen proof packs to all native platforms and synchronize release identity across canonical and mirror repositories.
(cherry picked from commit 30c3f59246)
Sign in to join this conversation.
No description provided.