Node Configuration#
The node{}
configuration section specifies general settings for the node view holder regime. It includes parameters for state type, extra index, block and transaction verification, mining configuration, memory pool management, and more.
State Type#
stateType = "utxo"
stateType
setting sets the type of state the node maintains. Possible options are utxo
, where the node keeps a full utxo set allowing it to validate arbitrary blocks and generate ADProofs, and digest
, where the node only keeps the state root hash and validates transactions via ADProofs.
Extra Index#
extraIndex = false
extraCacheSize = 500
extraIndex
setting, if set to true, allows the node to store all transactions, boxes, and addresses in an index. extraCacheSize
sets the number of recently used extra indexes kept in memory.
Verify Transactions#
verifyTransactions = true
verifyTransactions
is set to true, the node will download block transactions and verify them.
Blocks to Keep#
blocksToKeep = -1
blocksToKeep
setting defines the number of last blocks to keep with transactions and ADproofs. Only the header will be stored for other blocks.
PoPoW Bootstrap#
PoPoWBootstrap = false
PoPoWBootstrap
is set to true, the node will download the Proof of Proof of Work (PoPoW) on node bootstrap.
Mining#
mining = false
maxTransactionCost = 1000000
maxTransactionSize = 98304 // 96 kb
useExternalMiner = true
internalMinersCount = 1
internalMinerPollingInterval = 500ms
miningPubKeyHex = null
Offline Generation#
offlineGeneration = false
offlineGeneration
is set to true, the node will generate blocks while disconnected from the mainnet.
Keep Versions#
keepVersions = 200
keepVersions
setting specifies the number of state snapshots diffs to keep, which defines the maximum rollback depth.
Acceptable Chain Update Delay#
acceptableChainUpdateDelay = 30m
acceptableChainUpdateDelay
setting is the acceptable difference between the current time and the timestamp of the latest chain update or best block. It helps to discover syncing issues.
Memory Pool Configuration#
The mempool settings define the maximum number of unconfirmed transactions the node will accept, the interval for re-checking a transaction in the memory pool, the mempool transaction sorting scheme, the number of transactions to rebroadcast at each epoch, and the minimum fee amount for transactions.
Blacklisted Transactions#
blacklistedTransactions = []
blacklistedTransactions
setting is a list of hex-encoded identifiers of transactions banned from the memory pool.
Header Chain Diff#
headerChainDiff = 100
headerChainDiff
setting defines the number of blocks the node considers to be "close" in time when syncing the header chain.
Checkpoint#
checkpoint = null
checkpoint
setting allows you to specify an optional individual checkpoint to skip script validation for performance and memory usage improvements during initial bootstrapping.
ADProofs#
Suffix Length
adProofsSuffixLength = 114688 // 112k
adProofsSuffixLength
setting specifies the length of the ADProofs
suffix dumped during bootstrapping.
UTXO Bootstrap#
utxoBootstrap = false
storingUtxoSnapshots = 2
p2pUtxoSnapshots = 2
utxoBootstrap
setting, if set to true, allows the node to download and apply UTXO set snapshot and full-blocks after that. storingUtxoSnapshots
sets the number of UTXO set snapshots to store, 0 means that they are not stored at all. p2pUtxoSnapshots
sets the number of UTXO set snapshots for a height with the same id we need to find in the p2p network in order to start downloading it.
NiPoPoW Bootstrap#
nipopowBootstrap = false
p2pNipopows = 2
nipopowSuffix = 10
nipopowBootstrap
setting, if set to true, allows the node to download the Proof of Proof of Work (NiPoPoW) on node bootstrap. p2pNipopows
sets the number of different proofs we are downloading from other peers and comparing with each other, before choosing the best one. nipopowSuffix
sets the minimal suffix size for NiPoPoW proof.