Skip to content

Comments

core, build: reintroduce evmone#1

Closed
tellabg wants to merge 1 commit intomasterfrom
evm-one-reborn-with-keeper
Closed

core, build: reintroduce evmone#1
tellabg wants to merge 1 commit intomasterfrom
evm-one-reborn-with-keeper

Conversation

@tellabg
Copy link
Owner

@tellabg tellabg commented Feb 13, 2026

Reintroduce evmone as an EVM interpreter option behind the evmone build tag.

Changes

  • Integrate evmone via CGO with EVMC interface
  • Propagate gas refund from evmone to Go StateDB (fixes gas overcharge bug)
  • Allocate all C parameters in C memory to avoid CGO pointer issues
  • Map chain fork rules to EVMC revision constants
  • Support building with -tags evmone (default build uses Go interpreter)

Testing

  • Verified on Hoodi testnet: synced past block 2,225,600 with correct gas accounting
  • Block 2,220,982 gas totals match network consensus after refund fix
  • Requires --cache.noprefetch flag (prefetcher has thread-safety issues with evmone callbacks)

Known Issues

  • CGO pointer check panic with GODEBUG=cgocheck=2 during nested EVM calls (workaround: GODEBUG=cgocheck=0)
  • Some invalid receipt root hash bad blocks observed (under investigation)

Reintroduce evmone as an EVM interpreter option behind the 'evmone' build tag.
Includes gas refund propagation from evmone to Go StateDB, and C memory
allocation for all parameters passed across the CGO boundary.
@tellabg tellabg force-pushed the evm-one-reborn-with-keeper branch from d6c798f to e4bddea Compare February 13, 2026 08:57
@tellabg
Copy link
Owner Author

tellabg commented Feb 13, 2026

Closing — the real PR is ethereum#33833

@tellabg tellabg closed this Feb 13, 2026
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.

1 participant