Skip to content

Conversation

@antoniolocascio
Copy link
Contributor

What ❔

This PR adds (limited) EIP-4844 support. This includes:

  • Type 3 transaction parsing
  • Charging for blob gas used
  • Blob-related opcodes

This PR doesn't include excess-gas related computation/checks, as for now blob_fee is passed as metadata.
EIP-4844 is disabled for production and is only used for eth-runner, as we need to be fully EVM-equivalent to minimize divergences.

Why ❔

Is this a breaking change?

  • Yes
  • No

Checklist

  • PR title corresponds to the body of PR (we generate changelog entries from PRs).
  • Tests for the changes have been added / updated.
  • Documentation comments have been added / updated.
  • Code has been formatted.

@antoniolocascio antoniolocascio changed the base branch from main to dev November 3, 2025 06:33
@antoniolocascio antoniolocascio force-pushed the alocascio-4844-support branch 2 times, most recently from a996945 to cd979c2 Compare November 3, 2025 07:56
@0xVolosnikov 0xVolosnikov changed the title feat: EIP-4844 support feat!: EIP-4844 support Nov 10, 2025
@0xVolosnikov 0xVolosnikov force-pushed the alocascio-4844-support branch from cd979c2 to 7d222a5 Compare November 10, 2025 18:30
Base automatically changed from dev to main November 13, 2025 21:01
@antoniolocascio antoniolocascio force-pushed the alocascio-4844-support branch 2 times, most recently from 6252e19 to b9e19ae Compare November 17, 2025 10:15
@antoniolocascio antoniolocascio changed the base branch from main to alocascio-caches-sharing January 5, 2026 07:39
@antoniolocascio antoniolocascio force-pushed the alocascio-caches-sharing branch 2 times, most recently from 0476075 to 1577701 Compare January 7, 2026 15:00
@0xVolosnikov 0xVolosnikov force-pushed the alocascio-caches-sharing branch 2 times, most recently from 104059b to 7df9c67 Compare January 8, 2026 06:06
Base automatically changed from alocascio-caches-sharing to dev January 8, 2026 06:45
@0xVolosnikov
Copy link
Contributor

0xVolosnikov commented Jan 8, 2026

Should we merge it before the corresponding implementation in "V2"?

@0xVolosnikov 0xVolosnikov force-pushed the alocascio-4844-support branch from 87dbfb5 to ca3b05b Compare January 9, 2026 05:54
antoniolocascio and others added 6 commits January 9, 2026 10:21
Note: for now we just pass blob_fee instead of excess blob gas.
This means that tests related to excess blob gas aren't supported.
@0xVolosnikov 0xVolosnikov force-pushed the alocascio-4844-support branch from ca3b05b to e2afe08 Compare January 9, 2026 06:21
));
}

system.set_tx_context(TxLevelMetadata {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I don't really like that we do it in validate_and_compute_fee_for_transaction function - it's easy to forget/be confused about when and where we do different steps of the tx initialization. I see why it's here, maybe we will restructure it in the future

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had to move it to avoid a copy of the blobs I think

@github-actions
Copy link
Contributor

github-actions bot commented Jan 9, 2026

Benchmark report

Benchmark Symbol Base Eff Head Eff (%) Base Raw Head Raw (%) Base Blake Head Blake (%) Base Bigint Head Bigint (%)
block_19299001 process_block 310,373,177 310,274,704 (-0.03%) 267,707,937 267,609,464 (-0.04%) 410,620 410,620 (+0.00%) 9,023,830 9,023,830 (+0.00%)
block_22244135 process_block 191,309,733 191,265,153 (-0.02%) 164,394,101 164,349,521 (-0.03%) 172,030 172,030 (+0.00%) 6,040,788 6,040,788 (+0.00%)
precompiles bn254_ecadd 53,195 53,195 (+0.00%) 47,743 47,743 (+0.00%) 0 0 (+0.00%) 1,363 1,363 (+0.00%)
precompiles bn254_ecmul 732,162 732,162 (+0.00%) 567,974 567,974 (+0.00%) 0 0 (+0.00%) 41,047 41,047 (+0.00%)
precompiles bn254_pairing 72,742,932 72,742,932 (+0.00%) 58,214,788 58,214,788 (+0.00%) 0 0 (+0.00%) 3,632,036 3,632,036 (+0.00%)
precompiles ecrecover 475,909 481,201 (+1.11%) 308,457 311,793 (+1.08%) 0 0 (+0.00%) 41,863 42,352 (+1.17%)
precompiles id 925 925 (+0.00%) 925 925 (+0.00%) 0 0 (+0.00%) 0 0 (+0.00%)
precompiles keccak 137,578 137,578 (+0.00%) 137,578 137,578 (+0.00%) 0 0 (+0.00%) 0 0 (+0.00%)
precompiles modexp 32,134,726 32,134,726 (+0.00%) 21,476,906 21,476,906 (+0.00%) 0 0 (+0.00%) 2,664,455 2,664,455 (+0.00%)
precompiles p256_verify 749,478 749,478 (+0.00%) 470,786 470,786 (+0.00%) 0 0 (+0.00%) 69,673 69,673 (+0.00%)
precompiles point_evaluation 51,158,395 51,158,395 (+0.00%) 39,535,767 39,535,767 (+0.00%) 0 0 (+0.00%) 2,905,657 2,905,657 (+0.00%)
precompiles process_block 148,245,909 148,252,691 (+0.00%) 118,766,653 118,787,451 (+0.02%) 5,080 5,060 (-0.39%) 7,349,494 7,346,070 (-0.05%)
precompiles process_transaction 73,886,762 73,883,670 (-0.00%) 59,183,510 59,188,286 (+0.01%) 160 160 (+0.00%) 3,675,173 3,673,206 (-0.05%)
precompiles ripemd 8,028 8,028 (+0.00%) 8,028 8,028 (+0.00%) 0 0 (+0.00%) 0 0 (+0.00%)
precompiles run_tx_loop 147,690,647 147,691,125 (+0.00%) 118,289,791 118,303,965 (+0.01%) 180 180 (+0.00%) 7,349,494 7,346,070 (-0.05%)
precompiles sha256 13,167 13,167 (+0.00%) 13,167 13,167 (+0.00%) 0 0 (+0.00%) 0 0 (+0.00%)
precompiles system_init 43,653 43,890 (+0.54%) 43,653 43,890 (+0.54%) 0 0 (+0.00%) 0 0 (+0.00%)
precompiles verify_and_apply_batch 129,622 134,662 (+3.89%) 95,062 99,782 (+4.97%) 2,160 2,180 (+0.93%) 0 0 (+0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants