The system requirements for Hyperledger Besu depend on different factors, including the:
- Size of the world state for the network.
- Number of transactions submitted to the network.
- Block gas limit.
- Number and complexity of JSON-RPC, PubSub, or GraphQL queries handled by the node.
Determining system requirements
CPU requirements are highest when syncing to the network and typically reduce after the node is synchronized to the chain head.
Java Virtual Machine size
Depending on your environment and network setup, Besu has the following minimum Java Virtual Machine (JVM) memory requiements. For:
- Private networks, 4GB
- MainNet and testnets, such as Ropten, 8GB.
Two JVM parameters can be set to suit your memory requirements:
-Xms<size>, which specifies the initial Java heap size.
-Xmx<size>, which specifies the maximum Java heap size.
Set the JVM options in the
BESU_OPTS environment variable.
JVM memory requirements are highest when syncing, but will reduce after the node is synchronized to the chain head. Monitor your system to determine your actual JVM memory needs.
Do not use pruning in Hyperledger Besu v1.4.0. Pruning has a known bug.
If using fast sync in v1.4.0, explicitly disable pruning using
Syncing to the Ethereum Mainnet requires 3TB for a full sync. To reduce the disk space required, use pruning. With pruning, we recommend approximately 750GB of available disk space.
You can run Besu on a virtual machine (VM) on a cloud service, such as AWS or Azure, or locally using a VM manager, such as VirtualBox.
If you set up your own VM locally using a VM manager, there are a few considerations:
- Ensure you enable Intel Virtualization Technology (VTx) and Virtualization Technology for Directed I/O (VT-d) in the BIOS settings.
- On Windows, you might need to disable Hyper-V in the Windows Feature list.
We recommend you create a VM with the following attributes:
- Memory Size: Set to 4096 MB (recommended)
- Create a virtual hard disk with at least 10 GB (20 GB recommended)
- Virtual hard disk file type: VDI (if you need to share it with other apps, use VHD)
- (Optional) You can create a shared directory to copy block files or genesis files from the host computer to the VM. For details on how to create a shared directory, see “Share Folders” in the Oracle VirtualBox documentation.