Releases: ethereum/execution-apis
Traction control
The pre-release v1.0.0-beta.4
is a mammoth of an execution-apis
release.
There are far to many changes over the last year to dive deeply into any of them, but a few highlights:
- Proto-spec for Prague is available for devnet-0 work.
- The test generation tooling has changed a bit, thanks to the work of @fjl. The testing chain is now created using
hivechain
. - The
eth
namespace endpoints were updated for Cancun. mining
namespace was completely removed.
Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4
Clean Air
v1.0.0-beta.3
is a pre-release of the Execution APIs.
This release finalizes the changes for the upcoming Shanghai-Capella upgrade. As mentioned in v1.0.0-beta.2
, there were indeed a couple minor changes. Most relevant are #380 and #387.
In addition to the changes made to the Engine API, @mkalinin worked hard during the Edelweiss interop to develop the Open RPC schema for the Engine API. It is not currently considered authoritative, but it is a step in that direction. In the meantime, please continue referring to the markdown specifications in the case of any disagreement.
eth
Namespace
- chore: total difficulty typo by @onbjerg in #385
- Rename withdrawal
recipient
toaddress
by @lightclient in #387 - Update tests for withdrawals by @lightclient in #391
engine
Namespace
- Fix
exchangeCapabilities
examples by @mkalinin in #374 - EIP4844: move excess data gas field to align with consensus spec by @terencechain in #365
- Engine API: CL must switch to V2 methods since Shanghai by @mkalinin in #380
- Engine API: define Open RPC schema by @mkalinin in #379
New Contributors
Full Changelog: v1.0.0-beta.2...v1.0.0-beta.3
Bollard
v1.0.0-beta.2
is a pre-release of the Execution APIs.
This is the first release of the Execution APIs since the Paris-Bellatrix upgrade. Most of the changes are preparing for the upcoming Shanghai-Capella upgrade. It's possible that some small additional changes will be made before the upgrade occurs, but we anticipate this release to be quite stable. One notable change to the Engine API that we still anticipate for Shanghai is the deprecation of engine_exchangeTransitionConfiguration
(#339). Please share any feedback in the outstanding PR.
Beyond support for Shanghai-Capella, a number of housekeeping PRs were merged. @mkalinin designed a new layout for the Engine API specifications based on forks. This will hopefully allow client developers to more easily understand what the API should look like for any given fork. Some early specifications for EIP-4844 were also merged.
In the eth
namespace, a new Withdrawal
object was defined in #334 and was added to the eth_getBlockBy*
methods. A bug fix was provided via #326 and #351, which together added support for querying by block hash anywhere that previously allowed only BlockNumberOrTag
. This behavior already existed in clients and was not properly specified here.
Many other small fixes by contributed by various individuals. Danke für die Hilfe!
eth
Namespace
- eth: remove gasPrce and maxPriorityFee tests due to non-determinism by @lightclient in #294
- Adjusts wording and removes disk writing requirement. by @MicahZoltu in #298
- tests: refill with lightclient/rpctestgen#12 by @fjl in #347
- Increase strictness of base types by @lightclient in #305
- add option for blockHash per EIP-1898 by @macfarla in #326
- Fix json-rpc id to 1 for all tests by @lightclient in #350
- Revert block hash object by @lightclient in #351
- Changed storage proof array title to be plural by @shanejonas in #356
- Add schemas for withdrawals from EIP-4895 by @ralexstokes #334
engine
Namespace
- EIP-4844: engine_getBlobsBundleV1 specification, extension of engine API by @protolambda in #197
- Add withdrawal operations by @ralexstokes in #195
- Extend EIP-4844 to include withdrawals by @Inphi in #322
- Engine API: break down the spec by fork scopes by @mkalinin in #327
- Add engine_getPayloadV2 with locally built block value by @allboxes in #314
- Add block value response to blob-extension spec by @terencechain in #341
- Add timeouts values to 4844 related methods by @terencechain in #342
- Engine API: initial draft of EIP-6110 spec by @mkalinin in #340
- Engine API: a bunch of cleanups by @mkalinin in #338
- Engine API: unify failure mode for mismatched structure versions by @mkalinin in #337
- CL-EL withdrawals harmonization: using units of Gwei by @ralexstokes in #354
- Engine API: make engine_getPayloadVN fork agnostic by @ethDreamer in #355
- Engine API: define payload bodies requests by @mkalinin in #352
- EIP4844: Use
BYTES_PER_FIELD_ELEMENT
by @terencechain in #358 - Syncing EL client may not serve block bodies by @mkalinin in #361
- Engine API: error on too many block bodies by @mkalinin in #366
- Engine API: introduce exchangeCapabilities by @mkalinin in #364
- Constrain ByRange parameter values by @mkalinin in #370
Miscellaneous
- Hold dependency versions stable by @lightclient in #306
- Fix misspellings in Contributors Guide by @rroblak in #310
- fix(blob): broken links by @rkrasiuk in #343
- Update of Spellcheck GitHub Action to version 0.29.0 by @jonasbn in #346
- Fix broken link in engine/README.md by @henridf in #348
- Fix broken links by @mkalinin in #349
- Fix: typos by @omahs in #362
New Contributors
- @rroblak made their first contribution in #310
- @Inphi made their first contribution in #322
- @allboxes made their first contribution in #314
- @rkrasiuk made their first contribution in #343
- @henridf made their first contribution in #348
- @macfarla made their first contribution in #326
- @ethDreamer made their first contribution in #355
- @omahs made their first contribution in #362
- @casparschwa for spell checking my German
Full Changelog: v1.0.0-beta.1...v1.0.0-beta.2
Scrutineering
v1.0.0-beta.1
is a pre-release of the Execution APIs.
The is a jam-packed release for execution-apis
. First there were several clarifications to the engine
methods in preparation for the mainnet merge. The eth
namespace spec was converted to YAML for readability and many corrections were made. Some existing functionality was added to the spec scope and some was removed. The debug
namespace was officially added. Tests for eth
and debug
now live in the /tests
folder. @s1na has defined the GraphQL interface for eth
-style methods. Finally, the documentation has been improved substantially. There is now a guide for making changes to the JSON-RPC. PTAL if you want to understand better how to contribute to this repository.
Now that there is some test coverage and confidence in correctness is building, we're moving out of alpha
and into beta
. Note that this designation is only due to the instability expected in the eth
namespace. The engine
namespace should be considered stable and ready for mainnet use.
eth
Namespace
- Add GraphQL schema by @s1na in #199
- JSON-RPC: Add finalized and safe blocks by @mkalinin in #200
- graphql: add raw fields to block and tx by @s1na in #220
- add BlockNumberOrTag to eth_call, eth_estimateGas by @ryanio in #129
- add eth_feeHistory summary, description by @MintyAtmosphere in #128
- Change BlockNumber to BlockTags for existing APIs by @shemnon in #228
- log.transactionHash is required by @rafaelkallis in #240
oneOf
fails to match when block txs is empty by @lightclient in #243- Block nonce is 8 bytes by @shemnon in #229
- Convert spec to yaml by @lightclient in #246
- Add some initial test cases + CI validation by @lightclient in #249
- Make td optional field on block by @lightclient in #251
- Update tests so that they return chainId as part of EIP-155 txs by @lightclient in #255
- Add
eth_getProof
spec by @lightclient in #260 - Remove
eth_protocolVersion
by @lightclient in #264 - Use generic tx for
eth_sign
+eth_sendtransaction
and addfrom
field by @lightclient in #290 - Specify a placeholder TTD by @paulhauner in #285
debug
Namespace
- Standardize
debug
namespace by @lightclient in #247
engine
Namespace
- Auth spec shouldn't specify which methods are provided over it by @lightclient in #196
- Engine API: respond with error if payload attributes are invalid by @mkalinin in #211
- engine timeouts (redux) by @djrtwo in #216
- Engine API: adjust error codes with JSON-RPC 2.0 spec by @mkalinin in #214
- Engine API: return error if forkchoice state is inconsistent by @mkalinin in #213
- Engine API: remove unauth port and refer to auth spec by @mkalinin in #219
- Clarify the difference between SYNCING and ACCEPTED by @djrtwo in #215
- Engine API: replace INVALID_TERMINAL_BLOCK with INVALID + lvh=0x00..00 by @mkalinin in #217
- Engine API: a few clarifications by @mkalinin in #226
- Make td optional field on block by @lightclient in #251
- require JWT keys to be exactly 32 bytes by @tersec in #242
- Engine API: narrow down fcU skip conditions by @mkalinin in #244
- Engine API: recommend to retry the call after timeout by @mkalinin in #253
- Increase JWT issued-at window to 60s by @dapplion in #256
New Contributors
- @ralexstokes made their first contribution in #192
- @s1na made their first contribution in #199
- @rootulp made their first contribution in #181
- @jonasbn made their first contribution in #151
- @shemnon made their first contribution in #228
- @rafaelkallis made their first contribution in #240
- @tersec made their first contribution in #242
- @potuz made their first contribution in #254
- @dapplion made their first contribution in #256
Full Changelog: v1.0.0-alpha.8...v1.0.0-beta.1
Ballast
v1.0.0-alpha.9
is a pre-release of the Execution API.
In this release, the eth
namespace saw some minor changes. The engine
namespace was further refined, particularly with respect to edge cases. A new API specification was added to the repository in this release: the GraphQL spec! @s1na added this spec in #199. GraphQL is a great addition; it allows developers to make very fine-grain requests against execution clients.
eth
engine
- Remove references to the interop spec #192
- Auth spec shouldn't specify which methods are provided over it #196
- Get rid of eth1.0 leftovers #198
- Respond with error if payload attributes are invalid #211
- Engine timeouts (redux) #216
- Adjust error codes with JSON-RPC 2.0 spec #214
- Return error if forkchoice state is inconsistent #213
- Remove unauth port and refer to auth spec #219
- Add finalized and safe blocks #200
- Clarify the difference between SYNCING and ACCEPTED #215
- Replace INVALID_TERMINAL_BLOCK with INVALID + lvh=0x00..00 #217
- A few clarifications #226
graphql
- Add GraphQL schema by @s1na in #199
- graphql: add raw fields to block #220
- README: add graphql section #221
Miscellaneous
- Fix grammar in README by @rootulp in #181
- Bumped spellcheck GitHub action to version 0.20.0 by @jonasbn in #151
New Contributors
Thank you and welcome to our new contributors! 🙂
- @ralexstokes made their first contribution in #192
- @s1na made their first contribution in #199
- @rootulp made their first contribution in #181
- @jonasbn made their first contribution in #151
Full Changelog: v1.0.0-alpha.8...v1.0.0-alpha.9
Garagiste
Zylon
v1.0.0-alpha.7
is a pre-release of the Execution API.
eth
Namespace
No updates in this release.
engine
Namespace
- Add
engine_exchangeTransitionConfigurationV1
#172 - Authentication for engine api #167
- Fix
forkchoiceUpdated
INVALID
response #173 - Clarify
validationError
usage #175 - Rename
random
toprevRandao
#180
--
Full engine specification here.
107 Percent
v1.0.0-alpha.6
is a pre-release of the Execution API.
eth
Namespace
- New assembled output
refs-openrpc.json
allows external projects to easily reference spec objects #156 - Improve definition of log filter topic #169
Thank you @shanejonas and @fjl for youreth
API contributions.
engine
Namespace
- Stop ordering messages via the JSON-RPC
id
field and instead rely on the order the messages are received #148 - Fix missed merge => bellatrix renameing #161
- Extend semantics of
executePayload
andforkchoiceUpdated
methods #165 - Replace terminal block error with INVALID_TERMINAL_BLOCK status #170
Thank you @mkalinin, @djrtwo, @holiman, and @MariusVanDerWijden for your work and feedback on the engine
API changes.
--
Full engine
specification here.
Chicane
v1.0.0-alpha.5
is a pre-release of the Execution API.
eth
Namespace
- Add missing properties to ReceiptInfo schema #126
- Fix
eth_submitWork
parameters, allow0x0
uint
engine
Namespace
- Rename
coinbase
tofeeRecipient
inExecutionPayloadV1
#130 - Rename
feeRecipient
tosuggestedFeeRecipient
inPayloadAttributesV1
#130 - Rename
receiptRoot
toreceiptsRoot
inExecutionPayloadV1
#140 - Respond with error code
-32002
if terminal block doesn't satisfy terminal block conditions #132 - Serve HTTP and WS over same
8550
port #134 - Refine message ordering behavior #133
- Rename
message
tovalidationError
inengine_executePayloadV1
response #135 - Some typos fixed #111
--
Full specification here.
The Talladega Curse
v1.0.0-alpha.4
is a pre-release of the Execution API.
eth
Namespace
- Fixed misspelled method
getStorageAt
#107
engine
Namespace
This replaces "Installation Lap" as the new target for the November Merge sprint.
- Refines
forkchoiceUpdated
so that EL calculates and returnspayloadId
to CL #109
--
Full specification here.