NethermindEth / NethermindEth/juno
Remove Geth dependencies
@brbrr is already working on this.
Since May 22, 2026.
- 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:
- LRU Cache
- Ethereum types
- 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:
- Writing the new L1 client, coexisting with the Geth
- 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.Intusage foruint256defined types is an easy win for example.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.