This guide provides recommendations for hardware, client software, and configuration settings to optimize the performance of your Base node.
Running a performant Base node requires adequate hardware. We recommend the following minimum specifications:
This accounts for chain data growth and snapshot restoration space.
If utilizing Amazon Elastic Block Store (EBS), io2 Block Express volumes are recommended to ensure sufficient disk read speeds, preventing latency issues during initial sync. However, locally attached NVMe SSDs are strongly recommended over networked storage for optimal performance.
The following are the hardware specifications used for Base production nodes:
Geth Full Node:
i4i.12xlarge
/dev/nvme*
)Reth Archive Node:
i4ie.6xlarge
/dev/nvme*
)Using a recent snapshot can significantly reduce the time required for the initial node synchronization process.
The Base Node repository contains the current stable configurations and instructions for running different client implementations.
Reth is currently the most performant client for running Base nodes. Future optimizations will primarily focus on Reth. You can read more about the migration to Reth here.
Type | Supported Clients |
---|---|
Full | Reth, Geth |
Archive | Reth |
For Geth nodes, tuning cache allocation via environment variables can improve performance. These settings are used in the standard Docker configuration:
For teams running Geth with LevelDB, the following patch allows setting LevelDB initialization parameters via environment variables:
https://github.com/0x00101010/goleveldb/commit/55ef3429673fb70d389d052a15a4423e13d8b43c
This patch can be applied using a replace
directive in go.mod
when building op-geth
. Here’s how to modify your Dockerfile:
Recommended LevelDB environment variable values with this patch:
This guide provides recommendations for hardware, client software, and configuration settings to optimize the performance of your Base node.
Running a performant Base node requires adequate hardware. We recommend the following minimum specifications:
This accounts for chain data growth and snapshot restoration space.
If utilizing Amazon Elastic Block Store (EBS), io2 Block Express volumes are recommended to ensure sufficient disk read speeds, preventing latency issues during initial sync. However, locally attached NVMe SSDs are strongly recommended over networked storage for optimal performance.
The following are the hardware specifications used for Base production nodes:
Geth Full Node:
i4i.12xlarge
/dev/nvme*
)Reth Archive Node:
i4ie.6xlarge
/dev/nvme*
)Using a recent snapshot can significantly reduce the time required for the initial node synchronization process.
The Base Node repository contains the current stable configurations and instructions for running different client implementations.
Reth is currently the most performant client for running Base nodes. Future optimizations will primarily focus on Reth. You can read more about the migration to Reth here.
Type | Supported Clients |
---|---|
Full | Reth, Geth |
Archive | Reth |
For Geth nodes, tuning cache allocation via environment variables can improve performance. These settings are used in the standard Docker configuration:
For teams running Geth with LevelDB, the following patch allows setting LevelDB initialization parameters via environment variables:
https://github.com/0x00101010/goleveldb/commit/55ef3429673fb70d389d052a15a4423e13d8b43c
This patch can be applied using a replace
directive in go.mod
when building op-geth
. Here’s how to modify your Dockerfile:
Recommended LevelDB environment variable values with this patch: