Skip to content

Initial Configuration

Eric Voskuil edited this page May 3, 2017 · 17 revisions

The default settings are close to optimal for initial block download. Once complete settings should be changed to recommended operational configuration.

Log

The debug log can get large and impact performance if not managed. The most important setting is log.rotation_size, as a nonzero value enables log rotation. It is also helpful to maintain the debug log on an SSD and to rotate logs onto a disk other than that for the blockchain (SSD or HDD). Setting log.verbose = true is not recommended for initial block download.

Network

Limiting peers is essential during initial block download. More than two or three leads to excessive redundant block downloading, which can be seen in the debug log. Enabling incoming peers during initial block download creates unnecessary network overhead.

Database

The database should be stored on an SSD for optimal performance. Setting database.flush_writes = true significantly slows block download. For machines with at least 64 GB RAM, setting database.cache_capacity = 0 improves read/write performance. The default of 10000 is optimal for about 8GB RAM.

Blockchain

Defaults are close to optimal for a first run. Setting a high blockchain.checkpoint on subsequent runs will cause the most costly aspects of block validation to be bypassed until that checkpoint is reached. The checkpoint should be derived from a chain that you have validated. On Windows blockchain.use_libconsensus = true is significantly faster, though slightly slower on Linux and macOS.

Node

Defaults are close to optimal as transaction relay is ignored until the chain is current. Setting node.relay_transactions = false reduces the small amount of overhead incurred by receiving transaction announcements.

Server

Defaults are close to optimal as notifications and publications will not be enabled until the chain is current.

Clone this wiki locally