Skip to content

Berachain Node Configuration Reference

app.toml

Base Configuration (Top-level Options)

These options appear at the top of the file without a section header.

OptionDescriptionDefault Value
pruningPruning strategy for state storage. Only nodes that calculate block reward claim transactions need default."everything"
pruning-keep-recentNumber of recent states to keep when using custom pruning"0"
pruning-intervalInterval for state pruning when using custom pruning"0"
halt-heightBlock height at which to gracefully halt the node0
halt-timeUnix timestamp at which to gracefully halt the node0
min-retain-blocksMinimum block height offset from current block for pruning CometBFT blocks0
inter-block-cacheEnables inter-block cachingtrue
iavl-cache-sizeSize of the IAVL tree cache (in number of nodes)2500
iavl-disable-fastnodeDisables the fast node feature of IAVLtrue

Pruning Options

  • default: The last 362880 states are kept, pruning at 10 block intervals
  • nothing: All historic states will be saved, nothing will be deleted (archiving node)
  • everything: Only 2 latest states will be kept; pruning at 10 block intervals
  • custom: Manual specification through pruning-keep-recent and pruning-interval

Telemetry Configuration [telemetry]

OptionDescriptionDefault Value
service-namePrefix for keys to separate services""
enabledEnables application telemetry functionalitytrue
enable-hostnamePrefixes gauge values with hostnamefalse
enable-hostname-labelAdds hostname to labelsfalse
enable-service-labelAdds service to labelsfalse
prometheus-retention-timeWhen positive, enables a Prometheus metrics sink0
global-labelsGlobal set of name/value label tuples for all metrics[]
metrics-sinkType of metrics sink to use""
statsd-addrAddress of statsd server for metrics""
datadog-hostnameHostname for Datadog metrics""

BeaconKit Configuration

BeaconKit settings are organized into several subsections.

Engine [beacon-kit.engine]

OptionDescriptionDefault Value
rpc-dial-urlHTTP URL of the execution client JSON-RPC endpoint"http://localhost:8551"
rpc-retriesNumber of retries before shutting down consensus client"3"
rpc-timeoutRPC timeout for execution client requests"900ms"
rpc-startup-check-intervalInterval for the startup check"3s"
rpc-jwt-refresh-intervalInterval for the JWT refresh"30s"
jwt-secret-pathPath to the execution client JWT-secret"./jwt.hex"

Logger [beacon-kit.logger]

OptionDescriptionDefault Value
time-formatFormat of the time in the logger"RFC3339"
log-levelLevel of logging (verbosity)"info"
styleStyle of the logger"pretty"

KZG [beacon-kit.kzg]

OptionDescriptionDefault Value
trusted-setup-pathPath to the trusted setup file"./testing/files/kzg-trusted-setup.json"
implementationKZG implementation to use"crate-crypto/go-kzg-4844"

Implementation Options:

  • crate-crypto/go-kzg-4844
  • ethereum/c-kzg-4844

Payload Builder [beacon-kit.payload-builder]

OptionDescriptionDefault Value
enabledEnables the local payload builder (for validators)true
suggested-fee-recipientAddress to receive transaction fees from blocks"0x0000000000000000000000000000000000000000"
payload-timeoutTimeout for local build payload"850ms"

Validator [beacon-kit.validator]

OptionDescriptionDefault Value
graffitiString included in the graffiti field of beacon blocks""
enable-optimistic-payload-buildsEnables building the next block's payload optimistically"true"

Block Store Service [beacon-kit.block-store-service]

OptionDescriptionDefault Value
enabledEnables the block store service"false"
availability-windowNumber of slots to keep in the store"8192"

Node API [beacon-kit.node-api]

OptionDescriptionDefault Value
enabledEnables the node API"false"
addressAddress to bind the node API to"127.0.0.1:3500"
loggingEnables node API logging"false"

config.toml

Berachain Node CometBFT Configuration Reference

This document describes the configuration options available in the config.toml file for the CometBFT consensus engine used by Berachain nodes.

Current CometBFT version: 1.0.1

Main Base Config Options (Top-level)

OptionDescriptionDefault Value
proxy_appTCP or UNIX socket address of the ABCI application"tcp://127.0.0.1:26658"
monikerCustom human readable name for this node"poop"
db_backendDatabase backend type"pebbledb"
db_dirDatabase directory"data"
log_levelOutput level for logging"info"
log_formatOutput format: 'plain' (colored text) or 'json'"plain"
genesis_filePath to the JSON file containing the initial validator set"config/genesis.json"
priv_validator_key_filePath to the JSON file containing the private validator key"config/priv_validator_key.json"
priv_validator_state_filePath to the JSON file containing the last sign state"data/priv_validator_state.json"
priv_validator_laddrTCP or UNIX socket address for external PrivValidator process""
node_key_filePath to the JSON file containing the node authentication private key"config/node_key.json"
abciMechanism to connect to the ABCI application: socket or grpc"socket"
filter_peersIf true, query the ABCI app on connecting to new peersfalse

Database Backend Options

  • badgerdb: Uses github.com/dgraph-io/badger (stable, pure go)
  • goleveldb: Uses github.com/syndtr/goleveldb (UNMAINTAINED, stable, pure go)
  • pebbledb: Uses github.com/cockroachdb/pebble (stable, pure go)
  • rocksdb: Uses github.com/linxGnu/grocksdb (requires gcc)
  • cleveldb: Uses levigo wrapper (DEPRECATED, requires gcc)
  • boltdb: Uses etcd's fork of bolt (DEPRECATED, stable)

RPC Server Configuration [rpc]

OptionDescriptionDefault Value
laddrTCP or UNIX socket address for the RPC server"tcp://127.0.0.1:26657"
cors_allowed_originsList of origins for cross-domain requests[]
cors_allowed_methodsList of allowed methods for cross-domain requests["HEAD", "GET", "POST"]
cors_allowed_headersList of allowed headers for cross-domain requests["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time"]
unsafeEnable unsafe RPC commandsfalse
max_open_connectionsMaximum number of simultaneous connections900
max_subscription_clientsMaximum number of unique clients that can /subscribe100
max_subscriptions_per_clientMaximum subscriptions per client5
experimental_subscription_buffer_sizeMaximum events to buffer per subscription200
experimental_websocket_write_buffer_sizeMaximum RPC responses buffered per WebSocket client200
experimental_close_on_slow_clientClose WebSocket if client can't read fast enoughfalse
timeout_broadcast_tx_commitHow long to wait for tx commit during broadcast"10s"
max_request_batch_sizeMaximum number of requests in a batch10
max_body_bytesMaximum size of request body1000000
max_header_bytesMaximum size of request header1048576
tls_cert_filePath to TLS certificate file""
tls_key_filePath to TLS key file""
pprof_laddrpprof listen address""

gRPC Server Configuration [grpc]

OptionDescriptionDefault Value
laddrTCP or UNIX socket address for the gRPC server""

gRPC Service Configurations

ServiceConfigurationEnabled
[grpc.version_service]The gRPC version servicetrue
[grpc.block_service]The gRPC block servicetrue
[grpc.block_results_service]The gRPC block results servicetrue

Privileged gRPC Endpoints [grpc.privileged]

OptionDescriptionDefault Value
laddrHost/port for privileged gRPC endpoints""
Pruning Service [grpc.privileged.pruning_service]
OptionDescriptionDefault Value
enabledControls access to pruning service via gRPC APIfalse

P2P Configuration [p2p]

OptionDescriptionDefault Value
laddrAddress to listen for incoming connections"tcp://0.0.0.0:26656"
external_addressAddress to advertise to peers""
seedsComma separated list of seed nodes""
persistent_peersComma separated list of persistent peer nodes""
addr_book_filePath to address book"config/addrbook.json"
addr_book_strictSet true for strict address routability rulestrue
max_num_inbound_peersMaximum number of inbound peers120
max_num_outbound_peersMaximum number of outbound peers40
unconditional_peer_idsList of node IDs to connect to ignoring limits""
persistent_peers_max_dial_periodMaximum pause when redialing persistent peers"0s"
flush_throttle_timeoutTime to wait before flushing messages"10ms"
max_packet_msg_payload_sizeMaximum size of a message packet payload1024
send_rateRate at which packets can be sent5120000
recv_rateRate at which packets can be received5120000
pexSet true to enable the peer-exchange reactortrue
seed_modeSeed mode for network crawlingfalse
private_peer_idsList of peer IDs to keep private""
allow_duplicate_ipToggle to disable guard against peers from same IPfalse
handshake_timeoutPeer connection handshake timeout"20s"
dial_timeoutPeer connection dial timeout"3s"

Mempool Configuration [mempool]

OptionDescriptionDefault Value
typeType of mempool for this node"nop"
recheckWhether to recheck transactions after a blockfalse
recheck_timeoutTimeout for rechecking process"0s"
broadcastWhether to relay transactions to other peersfalse
wal_dirLocation of the Write Ahead Log for the mempool""
sizeMaximum number of transactions in the mempool0
max_tx_bytesMaximum size of a single transaction0
max_txs_bytesMaximum size of all transactions in mempool0
cache_sizeSize of the transaction cache0
keep-invalid-txs-in-cacheWhether to keep invalid transactions in cachefalse
experimental_max_gossip_connections_to_persistent_peersLimit gossip to number of persistent peers0
experimental_max_gossip_connections_to_non_persistent_peersLimit gossip to number of non-persistent peers0

Mempool Types

  • "flood": Concurrent linked list mempool with flooding gossip protocol (default)
  • "nop": No-operation mempool where the ABCI app handles transactions

State Sync Configuration [statesync]

OptionDescriptionDefault Value
enableEnable state sync for rapid node bootstrappingfalse
rpc_serversRPC servers for light client verification""
trust_heightTrusted block height for state sync0
trust_hashTrusted block hash for state sync""
trust_periodTrust period for validators (usually 2/3 of unbonding time)"168h0m0s"
discovery_timeTime for discovering snapshots"15s"
temp_dirTemporary directory for state sync chunks""
chunk_request_timeoutTimeout before re-requesting a chunk"10s"
chunk_fetchersNumber of concurrent chunk fetchers"4"

Block Sync Configuration [blocksync]

OptionDescriptionDefault Value
versionBlock Sync version to use"v0"

Consensus Configuration [consensus]

OptionDescriptionDefault Value
wal_filePath to the consensus WAL file"data/cs.wal/wal"
timeout_proposeHow long to wait for a proposal block"2s"
timeout_propose_deltaHow much timeout_propose increases per round"500ms"
timeout_prevoteHow long to wait after receiving +2/3 prevotes"2s"
timeout_prevote_deltaHow much timeout_prevote increases per round"500ms"
timeout_precommitHow long to wait after receiving +2/3 precommits"2s"
timeout_precommit_deltaHow much timeout_precommit increases per round"500ms"
timeout_commitHow long to wait after committing a block"500ms"
skip_timeout_commitDeprecated: set timeout_commit to 0 insteadfalse
double_sign_check_heightHow many blocks to check for double signing0
create_empty_blocksWhether to create empty blockstrue
create_empty_blocks_intervalInterval between empty blocks"0s"
peer_gossip_sleep_durationSleep duration for peer gossip"100ms"
peer_gossip_intraloop_sleep_durationIntraloop sleep duration for peer gossip"0s"
peer_query_maj23_sleep_durationSleep duration for peer query"2s"

Storage Configuration [storage]

OptionDescriptionDefault Value
discard_abci_responsesWhether to discard ABCI responses from state storetrue
experimental_db_key_layoutRepresentation of keys in the database"v1"
compactForce compaction for databases that support itfalse
compaction_intervalNumber of blocks to wait before triggering compaction"1000"

Pruning Configuration [storage.pruning]

OptionDescriptionDefault Value
intervalTime period between automated pruning operations"10s"
Data Companion Configuration [storage.pruning.data_companion]
OptionDescriptionDefault Value
enabledWhether pruning respects data companion settingsfalse
initial_block_retain_heightInitial value for block retain height0
initial_block_results_retain_heightInitial value for block results retain height0

Transaction Indexer Configuration [tx_index]

OptionDescriptionDefault Value
indexerWhat indexer to use for transactions"null"
psql-connPostgreSQL connection string""

Indexer Options

  • "null": No indexer
  • "kv": Simple key-value storage indexer (default)
  • "psql": PostgreSQL-backed indexer

Instrumentation Configuration [instrumentation]

OptionDescriptionDefault Value
prometheusEnable Prometheus metricstrue
prometheus_listen_addrAddress for Prometheus collector connections":26660"
max_open_connectionsMaximum number of simultaneous connections800
namespaceInstrumentation namespace"cometbft"