Repository navigation
Add the offline EIP-8347 migration lap, pin every fork, fix what the final laps found - #25
Merged
Merged
Conversation
…final laps found make migration-offline runs the full lap plus the offline path: geth and erigon export a PBT snapshot at a finalized anchor, then Nethermind and geth stop, import it and replay to the tip one at a time (cmd/migration-swap, images/, monitor lifecycle steps, five judge checks). scripts/sources.sh fetches every fork at a pinned commit. Fixes the shadow-samples boundary rule and six harness bugs the final laps found, and works around erigon's parallel-commitment default on the bin-only tree-at-genesis datadirs.
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.
make migration-offline(args/migration-offline.yaml) runs the full lap plus the offline path of EIP-8347.A non-validating geth (P6) and erigon (P2) export a PBT snapshot and preimage file at a finalized anchor. Then
Nethermind (P5) and geth (P3) stop, import it, restart and replay to the tip, one at a time, while the network
keeps finalizing.
Added
cmd/migration-swap: the host-side orchestrator.healthy, no partition, a chaos gap, the deadline.
swaps.jsonand posts each step to the monitor.images/geth,images/nethermind: thin layers over the client images that run the import on start.main.star:pbt_migration.offlinewith plan-time checks. Observers (validator_count: 0) are kept out ofstake, chaos and the gate.
POST /api/lifecycle, per-node export/import steps, derivedreplaying/caught_up, a swap paneland anchor markers. README clip re-recorded.
artifact-produced,import-accepted,swaps-serialized,replay-caught-upandoffline-coverage(INCONCLUSIVE on online laps).
Pins
scripts/sources.shfetches each fork at a pinned commit into../pbt-devnet-src/<name>.PBT_*_REFmoves apin (a branch name tracks the tip);
PBT_*_SRCbuilds a local checkout as-is.pbtfbfd486bbinary-trie7b675afbpbt-offsetb56f205bglamsterdam-devnet-8-pbtba419e5ffeat/partitioned-binary-trie9a9a9817pbt-state323217bcFixed
shadow-samples: after I* only "binary parked" is required, since geth freezes merkle at I*. Erigon stoppingits hex shadow 96 blocks past activation counts as retirement once the fork block is finalized, not a stall.
(
--observeron migration-chaos, migration-gate and pbtchaos).partitions-healed: a repeatedisolate(the straddle hold) replaced the open chaos window, so a late forkcrossing looked unscheduled.
lap.shgave no verdict when an EL was stopped. The judge now gets an unreachable URL for it, so thosechecks fail with evidence.
swaps-serializedfailed a skipped swap for having no stop time. Skipped swaps are excluded;offline-coveragestill fails them.lap-manifestfailed the lap on a pbtchaos "inconclusive", which now gives INCONCLUSIVE.caught_upwas measured against the node's own head, which right after a restart is as stale as itscursor. It is now measured against node 1's head.
Both erigons set
COMMITMENT_PARALLEL=falseuntil db/state, cmd: let a bin-only datadir drop an unrequested parallel-commitment default erigontech/erigon#24617 lands.Verification
go test -race ./...passes.make migration-offline: exit 0, 21/21 PASS. Exports at anchors 161 and 159; Nethermind and geth caught upto the tip 59 s and 37 s after stopping.
make migration: exit 0, 16 PASS, with the 5 offline checks INCONCLUSIVE by design.make migration-smoke: exit 0.make tree-at-genesis: 8 clients agree over 100 blocks.Client findings from these laps