NethermindEth / NethermindEth/juno

Remove Geth dependencies

Open
#3,673 0 comments 0 reactions 1 assignee View on GitHub

@brbrr is already working on this.

Since May 22, 2026.

no-stale
Dominant language
Go
Stars
444
Forks
244
Avg merge
2d 15h
Merged PRs (30d)
78

Description

We currently have 3 main dependencies from Geth that we need to remove:

  1. LRU Cache
  2. Ethereum types
  3. Ethereum RPC client

The LRU Cache is the simplest one by far and can be replaced by our own library or using an 3rd party one. I recommend using the latest version of https://github.com/hashicorp/golang-lru. Should be done in one single PR.


Then comes the spicy part, re-wiring our entire L1 types. There is no 3rd party (that I know of) that we can easily use to replace our L1 functionality, which means we need to write it from the ground up.

We need to define a new Ethereum RPC client with its own types and then replace them one by one. My suggested approach is multi layered approach:

  1. Writing the new L1 client, coexisting with the Geth
  2. Wiring the new L1 client to the code base and deleting the Geth one.

It goes without saying that this re-write has to be objectively better than what we currently have and with better test coverage. Swapping *big.Int usage for uint256 defined types is an easy win for example.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.