2024 Besu Defaults

Context

Currently starting Besu without configuring a handful of options will create a sub-par experience for users. It will use FOREST and FAST sync and attempt to connect to Ethereum Mainnet. These options are no longer suitable for Mainnet and Proof of stake.

For private network users, configuration must be done either way to set up a custom genesis, chain ID, and to configure connections to peers. Defaults will have less impact on these users. Enterprises and developers are more likely to read the documentation prior to first start up.

Suggestions

The Consensys team is suggesting a re-evaluation of defaults in the new year. We are also simultaneously suggesting adding “profiles” to Besu that when set, provide defaults that serve certain use-cases or sets of users. 

One more note. When setting a profile, any other options the user configures that fall underneath that profile will be overwritten. For example, if a user sets --profile=enterprise and --sync-mode=FULL it will override the sync mode flag from FAST  to FULL.

Defaults, no profile

When starting up Besu with no additional commands ./bin/besu , the following defaults are suggested:

These defaults promote the most performant profile for public networks with the full chain history. This is especially important when we ship SnapSync as a Server in Q1. We want these users to be able to serve any data required by peers to be good network citizens. We also want to bump the peer count to enable more robust peering and serving more data to the network.

Profile Defaults

The Consensys Team is suggesting 4 profiles with their own defaults:

Broken down below are the profiles.

Selfish-staker

Considerate-staker

Private-network / Enterprise (?)

RPC Provider (Needed?)

Both types: