Skip to content

evm-fork-cache 0.2.0#16

Merged
KaiCode2 merged 1 commit into
mainfrom
release/v0.2.0
Jul 5, 2026
Merged

evm-fork-cache 0.2.0#16
KaiCode2 merged 1 commit into
mainfrom
release/v0.2.0

Conversation

@KaiCode2

@KaiCode2 KaiCode2 commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Liveness & hardening release: bulk-storage default loader, verified code seeding, Phase-8 liveness, and the ReactiveEngine adapter lifecycle. All gates green; economics re-verified live. See CHANGELOG.md [0.2.0].

…reactive lifecycle

The liveness & hardening release. Squashes the 0.2.0 development line into one
commit. All gates green across the feature matrix (default, --all-features,
reactive-polling-only, no-reactive core); pre-1.0, so breaking changes are
allowed in this minor and are recorded in CHANGELOG.md.

Phase 8 — liveness & state invalidation as a first-class engine concern:
- storageHash root gate with per-account TrackingPolicy and CoverageGap
  detection; RootGateCadence keeps eth_getProof off the per-block path.
- CacheHealth / CacheMetrics foundation; journaled deep-reorg self-heal with
  missed-range detection; strict block context with advance_block env refresh.
- Honest freshness verdict taxonomy, Validity stamping of reactive writes,
  BLOCKHASH fail-closed, and a snapshot-generation guard.
- Cold-start root baseline (roots.bin) and the trace-backed resync source.

Bulk storage extraction is the default loader — Dedaub-style eth_call state
extraction with Multicall3 dispatch, gzip, and automatic point-read fallback;
provider-neutral trace resync execution.

Verified code seeding — CodeSeedState marks, seed/etch primitives, persisted
code_seeds.bin, the AccountFieldsFetchFn seam, verify_code_seeds (fail-closed
against on-chain EXTCODEHASH), and a cold-start verify_code phase. Proof
economics: batched eth_getProof fan-out with max_concurrent_proofs.

Mid-lifecycle adapter register/unregister — ReactiveEngine binds a
ReactiveRuntime to an EventSubscriber and drives handler lifecycle as one
operation: register_handler auto-anchors a new handler's log backfill to the
runtime's last canonical block (register_handler_with_backfill / _live_only
variants; sync_handler_interests bootstraps a pre-populated runtime), and
owner-scoped interest growth is continuity-safe (the changed subscription
inherits the prior delivery anchor and self-heals the gap). unregister_handler
plus untrack_account and cancel_pending_resyncs are the teardown recipe.
Backed by the InterestOwnerSubscriber trait (implemented by AlloySubscriber)
and runtime last_canonical_block() / pending_resyncs() accessors.

Release hardening:
- #![warn(missing_docs)] enforced; full public-item doc coverage.
- CI runs the whole feature matrix (--all-features + polling-only + no-reactive
  core), not just default features.
- New examples/reactive_engine_lifecycle.rs (offline, end-to-end lifecycle) and
  tests/reactive_subscriber_ingest.rs (real AlloySubscriber batch → runtime
  ingest, closing the documented integration gap).
- Docs reconciled (README, ROADMAP, KNOWN_ISSUES, CHANGELOG) and package
  hygiene: internal specs/plans excluded from the published crate.
@KaiCode2
KaiCode2 merged commit 147ecc1 into main Jul 5, 2026
2 checks passed
@KaiCode2
KaiCode2 deleted the release/v0.2.0 branch July 5, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant