Feature/archive block2 - #52
Conversation
Capture canonical block metadata and materialize reverse diffs from completed block snapshots. Classify archive state stores explicitly and project account-asset companion mutations before root merge.
Add deterministic history body and index records, ordered durable commit markers, and bounded asynchronous persistence. Gate checkpoint advancement on committed archive history and cover crash, corruption, backpressure, and reorg behavior.
Persist reverse state history with bounded append-only body, index, and commit structures. Wire an opt-in archive writer into snapshot flush and add restart-safe account change indexing. Expose an experimental historical account balance endpoint for trace comparison.
Persist bounded restart checkpoints, truncation recovery, H/C/D/R progress authorities, and immutable serving generations. Pin committed history resources and fail closed on identity or durability drift.
Add durable engine identities and native LevelDB/RocksDB snapshot leases. Assemble exact Store generations under the SnapshotManager barrier and release partial acquisitions on authority drift.
Apply business mutations with participant progress in native sync batches. Freshly validate H/C/D authorities under the archive barrier and advance reader visibility only after exact convergence.
Unify LevelDB and RocksDB participants behind one recovery contract. Persist canonical mutation plans and bind checkpoint, participant, and reader progress to the same digest.
Collect exact ordinary and AccountAsset post-state without Store scans. Enforce target identity, bounded ownership, one-shot sealing, abort, and terminal payload release.
Drive an exact-27 capture batch through mixed native participants, inject a partial apply failure, and verify durable-plan replay, digest propagation, ownership, and restart convergence.
Apply two capture-produced targets through exact-27 participants. Verify per-target plan digests, overwrite and delete semantics, partial replay boundaries, reader publication, and restart convergence.
Prepare one target-bound Account and AccountAsset projection before snapshot merge, retain its forward payload through the revoking lifecycle, and seal it only against durable history markers. Keep the integration default-off and preserve the existing proposal 66 physical layout.
Classify ABI as mutable auxiliary metadata outside the versioned state participant set while retaining an explicit tombstone classification.
Exercise proposal-bound projection, layer-to-flush ownership, durable marker sealing, retry and reorg boundaries, exact participant coverage, and ABI exclusion.
Expose durable marker receipt creation through direct and asynchronous history sinks, then gate forward payload sealing on the exact committed flush range. Retain submitted frozen ranges across durability or receipt failures so retries do not resubmit history.
Verify direct and asynchronous receipt authority, disabled behavior, and retry ordering across durable wait and receipt failures without duplicate history submission.
Connect the exact 27 participant plus super-store format to Manager startup, block-final updates, recovery, and bounded short reorg handling. Add fresh-format admission, resumable physical ingestion, global publication intents, reverse journals, and integration/fault coverage.
Capture block-scoped archive and path-state changes in snapshots, then materialize Chainbase, trie, and archive stores through a shared redo checkpoint. Add overlay-based path-state preparation, serving-index recovery, configuration, and integration coverage.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
This PR is large and would use a significant portion of your monthly review quota. Comment |
❌ Math Usage Detection ResultsFound forbidden usage of Please review if this usage is intended. Caution Note: You should use |
Defer Account and AccountAsset node encoding until the final block-scoped graph is frozen, while retaining strict canonical RLP validation and resolved subtree reuse across snapshots. Avoid synchronous PathState owner reads when header diagnostics cannot observe an exact ready identity.
❌ Math Usage Detection ResultsFound forbidden usage of Please review if this usage is intended. Caution Note: You should use |
|
This PR is large and would use a significant portion of your monthly review quota. Comment |
❌ Math Usage Detection ResultsFound forbidden usage of Please review if this usage is intended. Caution Note: You should use |
|
This PR is large and would use a significant portion of your monthly review quota. Comment |
|
This PR is large and would use a significant portion of your monthly review quota. Comment |
❌ Math Usage Detection ResultsFound forbidden usage of Please review if this usage is intended. Caution Note: You should use |
❌ Math Usage Detection ResultsFound forbidden usage of Please review if this usage is intended. Caution Note: You should use |
|
This PR is large and would use a significant portion of your monthly review quota. Comment |
Use the configured storage engine for legacy and common-checkpoint Archive indexes while preserving fail-closed durable engine identity checks.\n\nAdd LevelDB generation extension, CRC32C engine manifests compatible with the legacy SHA format, and runtime-bound validation outside the point-query pin hot path.
❌ Math Usage Detection ResultsFound forbidden usage of Please review if this usage is intended. Caution Note: You should use |
|
This PR is large and would use a significant portion of your monthly review quota. Comment |
What does this PR do?
Why are these changes required?
This PR has been tested by:
Follow up
Extra details
Summary by cubic
Adds an opt-in persistent state archive that records block-level state history, builds an exact-27 serving index incrementally from committed history, and enables historical constant calls against archived state.
The archive writes reverse diffs per canonical block to bounded append-only history partitioned into dedicated per-store file libraries, binds each checkpoint batch to a Chainbase WAL entry, and publishes serving generations with request-owned historical query sessions. A non-consensus path-state trie is maintained and its root attached to block headers as optional metadata. The VM supports a
HISTORICAL_CONSTANTexecution mode backed by archived state; the current-state path is unchanged.Behavioral notes
CREATE/CREATE2,SELFDESTRUCT, and writes are rejected.Written for commit 632c995. Summary will update on new commits.