Commit 32dc528
committed
Merge engine-api-integration (#367) into the in-process ethrex PoC
Absorbs the out-of-process Engine-API integration (#367) so the full EL
pipeline — ExecutionEngine trait, ExecutionPayloadV3 embedded in BlockBody,
process_execution_payload STF, per-slot forkchoiceUpdated, newPayload on import
and on own-built blocks — lands on this branch alongside the in-process
ethrex-engine crate.
Reconciled against 55 commits of main evolution since #367 branched:
- Block-production timing (Option A): main builds+publishes the next slot's
block one interval early (interval 4). The EL payload is now built inline and
synchronously at interval 4 via build_execution_payload (build-mode
forkchoiceUpdated + getPayload), replacing #367's request-at-4 / fetch-at-0
stash. Dropped pending_payload_id, request_payload_id_for_next_slot,
take_prepared_payload.
- BlockChainConfig gained execution_client + suggested_fee_recipient (main had
folded actor params into the config struct); CliOptions moved to cli.rs and
gained the --execution-* flags there.
- Signature type rename TypeOneMultiSignature -> SingleMessageAggregate applied
to the merged block-builder / store paths; build_block and
produce_block_with_signatures now thread both proposer_config and the optional
execution_payload.
- StateDiff carries latest_execution_payload_header so reconstructed states keep
the EL block-hash chain (added the field + Eq/PartialEq on
ExecutionPayloadHeader). Test-only State literals updated for the new field.
Workspace builds, clippy -D warnings is clean, fmt clean; blockchain (58),
state-transition (108), storage (67) unit tests and the ethrex-engine roundtrip
pass. The in-process ExecutionEngine impl + --execution-mode selector are the
next step.42 files changed
Lines changed: 3393 additions & 27 deletions
File tree
- bin/ethlambda
- src
- crates
- blockchain
- src
- state_transition
- src
- tests
- tests
- common
- test-fixtures/src
- types
- src
- tests
- net
- ethrex-client
- src
- tests
- rpc/src
- storage/src
- docs/plans
- scripts/engine-api-demo
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| 40 | + | |
39 | 41 | | |
40 | 42 | | |
41 | 43 | | |
| |||
56 | 58 | | |
57 | 59 | | |
58 | 60 | | |
| 61 | + | |
59 | 62 | | |
60 | 63 | | |
61 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
77 | 80 | | |
78 | 81 | | |
79 | 82 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
380 | 380 | | |
381 | 381 | | |
382 | 382 | | |
| 383 | + | |
383 | 384 | | |
384 | 385 | | |
385 | 386 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
78 | 95 | | |
79 | 96 | | |
80 | 97 | | |
| |||
0 commit comments