Skip to content

OffchainLabs/execution-specs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arbitrum Execution Spec Tests

This is a fork of https://github.com/ethereum/execution-spec-tests

The Goal of forking Ethereum's Execution Spec tests was to verify that Arbitrum is working as expected well reusing existing tests and infrastructure.

Removed EIP's

Shanghai

  • EIP-3651: Warm COINBASE
  • EIP-4895: Beacon chain push withdrawals as operations

Not supported in ArbOS 20, EIP's from Cancun

  • EIP-4788: Beacon block root in the EVM
  • EIP-7516: BLOBBASEFEE instruction
Arbitrum can post/retrieve EIP-4844 from L1, but doesn't support the mechanics on Arbitrum. Only the precompile tests appear to pass
  • EIP-4844: Shard Blob Transactions

Not supported in ArbOS 40, EIP's from Prague

  • EIP-6110: Supply validator deposits on chain
  • EIP-7002: Execution layer triggerable withdrawals
  • EIP-7251: Increase the MAX_EFFECTIVE_BALANCE
  • EIP-7623: Increase calldata cost
  • EIP-7685: General purpose execution layer requests

Not supported in ArbOS 50, EIP's from Osaka

  • EIP-7594: PeerDAS - Peer Data Availability Sampling
  • EIP-7918: Blob base fee bounded by execution cost
  • EIP-7892: Blob Parameter Only Hardforks
  • EIP-7917: Deterministic proposer lookahead
  • EIP-7934: RLP Execution Block Size Limit
  • EIP-7907: Meter Contract Code Size And Increase Limit
  • EIP-7935: Set default gas limit to XX0M

I believe these EIP's weren't implemented/enabled in Arbitrum Nitro, so I removed them from the tests.

Instructions on how to run

  1. Install and run https://github.com/OffchainLabs/nitro-devnode in terminal 1:
git clone https://github.com/OffchainLabs/nitro-devnode.git
cd nitro-devnode
./run-dev-node.sh
  1. Install the execution spec tests dependencies in terminal 2:

Follow the Prerequisites and Installation sections below to install the required dependencies.

  1. Run the execution spec tests in terminal 2 against Arbitrum Nitro:
uv run execute remote --fork=Osaka --rpc-endpoint=http://127.0.0.1:8547 --rpc-seed-key 0xb6b15c8cb491557369f3c7d2c287b053eb229daa9c22138887752191c9520659 --rpc-chain-id 412346 ./tests/ --verbose

Expected Output

============================================================================= 4057 passed, 140 skipped in 5736.42s (1:35:36) =============================================================================

Ethereum Execution Client Specifications

GitPOAP Badge codecov Python Specification

Description

This repository contains the specifications related to the Ethereum execution client, specifically the pyspec and specifications for network upgrades. The JSON-RPC API specification can be found in a separate repository.

Ethereum Protocol Releases

Version and Code Name Block No. Released Incl EIPs Specs Blog
Prague 22431084 2025-05-07 EIP-2537
EIP-2935
EIP-6110
EIP-7002
EIP-7251
EIP-7549
EIP-7623
EIP-7685
EIP-7691
EIP-7702
Specs Blog
Cancun 19426587 2024-03-13
(1710338135)
EIP-1153
EIP-4788
EIP-4844
EIP-5656
EIP-6780
EIP-7044
EIP-7045
EIP-7514
EIP-7516
Specification Blog
Shanghai 17034870 2023-04-12
(1681338455)
EIP-3651
EIP-3855
EIP-3860
EIP-4895
Specification Blog
Paris 15537394 2022-09-15 EIP-3675
EIP-4399
Specification Blog
Gray Glacier 15050000 2022-06-30 EIP-5133 Specification Blog
Arrow Glacier 13773000 2021-12-09 EIP-4345 Specification Blog
London 12965000 2021-08-05 EIP-1559
EIP-3198
EIP-3529
EIP-3541
EIP-3554
Specification Blog
Berlin 12244000 2021-04-15 EIP-2565
EIP-2929
EIP-2718
EIP-2930
HFM-2070
Specification
Blog
Muir Glacier 9200000 2020-01-02 EIP-2384 HFM-2387 Blog
Istanbul 9069000 2019-12-07 EIP-152
EIP-1108
EIP-1344
EIP-1884
EIP-2028
EIP-2200
HFM-1679 Blog
Petersburg 7280000 2019-02-28 EIP-145
EIP-1014
EIP-1052
EIP-1234
HFM-1716 Blog
Constantinople 7280000 2019-02-28 EIP-145
EIP-1014
EIP-1052
EIP-1234
EIP-1283
HFM-1013 Blog
Byzantium 4370000 2017-10-16 EIP-100
EIP-140
EIP-196
EIP-197
EIP-198
EIP-211
EIP-214
EIP-649
EIP-658
HFM-609 Blog
Spurious Dragon 2675000 2016-11-22 EIP-155
EIP-160
EIP-161
EIP-170
HFM-607 Blog
Tangerine Whistle 2463000 2016-10-18 EIP-150 HFM-608 Blog
DAO Fork 1920000 2016-07-20 HFM-779 Blog
DAO Wars aborted aborted Blog
Homestead 1150000 2016-03-14 EIP-2
EIP-7
EIP-8
HFM-606 Blog
Frontier Thawing 200000 2015-09-07 Blog
Frontier 1 2015-07-30 Blog

Note: Starting with Paris, updates are no longer rolled out based on block numbers. Paris was enabled once proof-of-work Total Difficulty reached 58750000000000000000000. As of Shanghai (at 1681338455), upgrade activation is based on timestamps.

Some clarifications were enabled without protocol releases:

EIP Block No.
EIP-2681 0
EIP-3607 0
EIP-7523 15537394
EIP-7610 0

Execution Specification (work-in-progress)

The execution specification is a python implementation of Ethereum that prioritizes readability and simplicity. It will be accompanied by both narrative and API level documentation of the various components written in markdown and rendered using docc...

Usage

The Ethereum specification is maintained as a Python library, for better integration with tooling and testing.

Requires Python 3.11+

Building Specification Doucumentation

Building the spec documentation is most easily done through tox:

uvx --with=tox-uv tox -e spec-docs

The path to the generated HTML will be printed to the console.

Browsing Updated Documentation

To view the updated local documentation, run:

uv run mkdocs serve

then connect to localhost:8000 in a browser

License

The Ethereum Execution Layer Specification code is licensed under the Creative Commons Zero v1.0 Universal.

About

Specification for the Execution Layer. Tracking network upgrades.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.8%
  • JavaScript 0.1%
  • Jinja 0.1%
  • Sage 0.0%
  • Shell 0.0%
  • CSS 0.0%