evm-fork-cache 0.2.0#16
Merged
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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].