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.
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
.
When starting up Besu with no additional commands ./bin/besu
, the following defaults are suggested:
Xsnapsync-synchronizer-flat-db-healing-enabled=true (DELETE THIS FLAG → Safety concerns Gary Schulte)
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.
The Consensys Team is suggesting 4 profiles with their own defaults:
Broken down below are the profiles.
--fast-sync-min-peers
= 3--remote-connections-limit-enabled=false
--tx-pool-no-local-priority
Both types: