ethereum / ethereum/execution-apis

meta: tracking v1 release

Open
#887 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Io
Stars
1.1k
Forks
530
Avg merge
5d 8h
Merged PRs (30d)
9

Description

This issue tracks what has to land before we tag v1.0.0, and what we want to finish but will not hold the tag for.

## Blocking

### eth_simulateV1 after Amsterdam
- [ ] [#868](https://github.com/ethereum/execution-apis/issues/868) Decide what a simulated block looks like after Amsterdam: header field set, `blockAccessListHash` rules, `traceTransfers` under EIP-7708.
- [ ] [#881](https://github.com/ethereum/execution-apis/issues/881) Spec PR for the above. Adds `slotNumber` to `Block`. Supersedes [#806](https://github.com/ethereum/execution-apis/issues/806).
- [ ] [ethereum/go-ethereum#35668](https://github.com/ethereum/go-ethereum/pull/35668) and [ethereum/go-ethereum#35617](https://github.com/ethereum/go-ethereum/pull/35617) Reference implementation of [#881](https://github.com/ethereum/execution-apis/issues/881). Both must merge before the simulate fixtures can be regenerated.

### Test chain on Amsterdam
- [ ] [#867](https://github.com/ethereum/execution-apis/issues/867) Bump the test chain from Osaka to Amsterdam and regenerate fixtures. Waits on [#881](https://github.com/ethereum/execution-apis/issues/881) and the geth PRs.

### Block parameter forms
- [ ] [#859](https://github.com/ethereum/execution-apis/issues/859) Allow EIP-1898 block objects in `BlockNumberOrTagOrHash`. Approved. Closes most of [#713](https://github.com/ethereum/execution-apis/issues/713).
- [ ] [#491](https://github.com/ethereum/execution-apis/issues/491) `eth_estimateGas` and `eth_createAccessList` take `BlockNumberOrTag`; `eth_call` takes `BlockNumberOrTagOrHash`. Clients accept a hash on all three. PR: #889.

### Engine API
- [ ] [#781](https://github.com/ethereum/execution-apis/issues/781) / [#777](https://github.com/ethereum/execution-apis/issues/777) `engine_getBlobsV2` result schema lacks the `null` branch that `osaka.md` specifies. `engine_getBlobsV3` already has it. Approved and green; the `osaka.md` type labels also need `| null`.

## Should fix before v1

Spec gaps found while surveying clients. None changes the shape of an existing response.

### eth methods
- [ ] [#883](https://github.com/ethereum/execution-apis/issues/883) `blockOverrides.difficulty` and unknown override keys in eth_simulateV1. Six clients, five behaviors.
- [ ] [#884](https://github.com/ethereum/execution-apis/issues/884) Fields whose EIP is not active at the target block. Five of six clients reject them in `eth_call`; `eth_createAccessList` before Berlin fails on geth and reth and succeeds elsewhere. Error codes stay with [#784](https://github.com/ethereum/execution-apis/issues/784).
- [ ] [#854](https://github.com/ethereum/execution-apis/issues/854) / [#853](https://github.com/ethereum/execution-apis/issues/853) `eth_createAccessList` with an unfunded sender. Waits on [ethereum/go-ethereum#35397](https://github.com/ethereum/go-ethereum/pull/35397).
- [ ] [#461](https://github.com/ethereum/execution-apis/issues/461) `eth_call` with the block parameter omitted defaults to `latest`. The schema marks it optional and does not state the default. PR: #888.
- [ ] [#877](https://github.com/ethereum/execution-apis/issues/877) / [#874](https://github.com/ethereum/execution-apis/issues/874) `eth_getHeaderByHash` and `eth_getHeaderByNumber`. Ready for review. Include if merged before the tag.

### Engine, live forks
- [ ] [#548](https://github.com/ethereum/execution-apis/issues/548) `engine_forkchoiceUpdated` does not say whether the EL validates `safeBlockHash`, whether it must be on the head's chain, or what happens to state on rejection.
- [ ] [#546](https://github.com/ethereum/execution-apis/issues/546) Behavior of V1 engine methods after Shanghai. `shanghai.md` constrains the CL, not the EL.

## Non-blocking

### Testing methods
- [ ] [#857](https://github.com/ethereum/execution-apis/issues/857) / [#862](https://github.com/ethereum/execution-apis/issues/862) `testing_buildBlockV1` sends `targetGasLimit` on Amsterdam. Rebase [#862](https://github.com/ethereum/execution-apis/issues/862) onto [#867](https://github.com/ethereum/execution-apis/issues/867) once it merges.

### callTracer
- [ ] [#855](https://github.com/ethereum/execution-apis/issues/855) Specify `callTracer` output and add `debug_traceCall`. Stacked on [#867](https://github.com/ethereum/execution-apis/issues/867). Also makes speccheck validate named-tracer results, which today accept anything ([ethereum/hive#1588](https://github.com/ethereum/hive/pull/1588) is the hive side).
- [ ] [#852](https://github.com/ethereum/execution-apis/issues/852) EIP-8037 two-dimensional gas in tracer output and a `stateGasTracer`. Also waits on [#867](https://github.com/ethereum/execution-apis/issues/867). Overlaps [#855](https://github.com/ethereum/execution-apis/issues/855) on `CallFrame`; reconcile before either merges.

### Engine proposals
- [ ] [#760](https://github.com/ethereum/execution-apis/issues/760) Allow zero `safeBlockHash` and `finalizedBlockHash` after finalization. A behavior change on the same `paris.md` lines as [#548](https://github.com/ethereum/execution-apis/issues/548). The Lighthouse PR that motivated it was closed unmerged.
- [ ] [#856](https://github.com/ethereum/execution-apis/issues/856) Custody bitarray bit ordering. Amsterdam only. Waits on [ethereum/EIPs#12054](https://github.com/ethereum/EIPs/pull/12054).

### Other spec work
- [ ] [#845](https://github.com/ethereum/execution-apis/issues/845) / [#847](https://github.com/ethereum/execution-apis/issues/847) `debug_executionWitness`. Fixtures stay speconly until clients implement the canonical witness.
- [ ] [#817](https://github.com/ethereum/execution-apis/issues/817) / [#784](https://github.com/ethereum/execution-apis/issues/784) / [#823](https://github.com/ethereum/execution-apis/issues/823) Error codes. eth_simulateV1 keeps its `-38xxx` codes; the catalog gets cleaned before it is wired into more methods. Resolve the contradiction in [#817](https://github.com/ethereum/execution-apis/issues/817) in the text before v1. Wider standardization follows in a minor release.

## Housekeeping

- [ ] Close [#806](https://github.com/ethereum/execution-apis/issues/806), superseded by [#881](https://github.com/ethereum/execution-apis/issues/881).
- [x] Merge or close [#837](https://github.com/ethereum/execution-apis/issues/837) (Amsterdam ToC).
- [x] Close [#353](https://github.com/ethereum/execution-apis/issues/353), superseded by [#758](https://github.com/ethereum/execution-apis/issues/758).
- [x] Close [#537](https://github.com/ethereum/execution-apis/issues/537). `unevaluatedProperties` is gone from `src/`.
- [ ] Rebase or close [#815](https://github.com/ethereum/execution-apis/issues/815).
- [ ] Close engine PRs already landed or abandoned: [#608](https://github.com/ethereum/execution-apis/issues/608) (resolved by [#796](https://github.com/ethereum/execution-apis/issues/796)), [#769](https://github.com/ethereum/execution-apis/issues/769) (landed via [#778](https://github.com/ethereum/execution-apis/issues/778), [#798](https://github.com/ethereum/execution-apis/issues/798), [#834](https://github.com/ethereum/execution-apis/issues/834)), [#597](https://github.com/ethereum/execution-apis/issues/597) ([consensus-specs#3972](https://github.com/ethereum/consensus-specs/pull/3972) closed unmerged), [#557](https://github.com/ethereum/execution-apis/issues/557) (replaced by [#885](https://github.com/ethereum/execution-apis/issues/885)), [#302](https://github.com/ethereum/execution-apis/issues/302) and [#297](https://github.com/ethereum/execution-apis/issues/297) (JWT secret handling, inactive since 2023).
- [ ] Close answered or abandoned engine issues: [#662](https://github.com/ethereum/execution-apis/issues/662), [#271](https://github.com/ethereum/execution-apis/issues/271), [#333](https://github.com/ethereum/execution-apis/issues/333), [#208](https://github.com/ethereum/execution-apis/issues/208).
- [x] Close [#631](https://github.com/ethereum/execution-apis/issues/631) as answered. Deprecated fields are still required from servers.

Contributor guide

Open the contributing guide

Research direction

Start with the Blocking, Should fix before v1, Non-blocking, and Housekeeping checklists in this issue, then follow each linked issue and pull request to verify its status. Confirm which items must land before tagging v1.0.0, update the checklist as work merges or is superseded, and close housekeeping entries when their stated resolution is complete.

Written by the indexing model from the issue text.

Assessment

Domain
release
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.