Abstract
This BRIP proposes the deprecation of bera-geth, Berachain’s fork of the Go-ethereum execution client. Following this deprecation, the Berachain core team will exclusively maintain bera-reth, the Rust-based execution client built on the Reth SDK. This consolidation aligns with Berachain’s long-term goals of supporting modular, performant execution infrastructure and enables future protocol enhancements that require reth-sdk capabilities, such as the preconfirmation network proposed in BRIP-0007.
Motivation: Resource Efficiency
Maintaining two execution client forks requires:
- Duplicate implementation of protocol changes across Go and Rust codebases
- Separate CI/CD pipelines and testing infrastructure
- Dual upstream merge processes for each Ethereum hard fork
- Increased code review and audit surface area
Consolidating to a single execution client reduces maintenance burden and allows the team to focus resources on protocol improvements rather than duplicate client maintenance.
Bera-Reth as the Primary Client
Following deprecation, bera-reth will serve as the primary and officially supported execution client for Berachain. All protocol changes, hard fork support, and new features will be implemented exclusively in bera-reth.
SDK Architecture: Reth’s SDK-based design provides better extensibility for protocol-specific modifications. The modular architecture makes it easier to implement custom features like the preconfirmation network without forking the entire client.
Performance: Rust’s performance characteristics and Reth’s optimized implementation provide better throughput and lower latency, which is important for Berachain’s 2-second block times.
Ecosystem Alignment: The Rust ecosystem aligns better with Berachain’s long-term technical direction. Future protocol enhancements that require low-level system integration are more naturally implemented in Rust.
More details can be found in BRIPs/meta/BRIP-0009.md at main · berachain/BRIPs · GitHub