There is a large number of node-related settings that can be customized in Bitxor.
The easiest way to change them is by using Bitxor Bootstrap’s custom presets (read Using Bitxor Bootstrap): Put the settings in a YAML file and pass it to bitxor-bootstrap config
using the -c
parameter. For example:
friendlyName: my-uber-node
dataDirectory: ./data
These settings can also be directly provided to bitxorcore-client through .properties
files. The header of each of the tables below indicates which file contains that table’s properties.
Note
For network-related properties, read the Configuring network properties guide.
resources/config-user.properties
v1.0.2.0
Property | Type | Default value PRIVATE | Default value MAINNET | |||
---|---|---|---|---|---|---|
account | ||||||
enableDelegatedHarvestersAutoDetection | bool | true | true | |||
true if potential delegated harvesters should be automatically detected. | ||||||
storage | ||||||
seedDirectory | string | ../seed | ./seed | |||
Seed directory containing genesis. | ||||||
dataDirectory | string | ../data | ./data | |||
Data directory. | ||||||
certificateDirectory | string | ../certificate | ./cert | |||
Certificate directory. | ||||||
votingKeysDirectory | string | ../votingkeys | ./votingkeys | |||
Voting keys directory. | ||||||
pluginsDirectory | string | . | /usr/bitxorcore/lib | |||
Plugins directory. |
resources/config-node.properties
v1.0.2.0
Property | Type | Default value PRIVATE | Default value MAINNET | |||
---|---|---|---|---|---|---|
node | ||||||
port | unsigned short | 7900 | 7900 | |||
Server port. | ||||||
maxIncomingConnectionsPerIdentity | uint32_t | 3 | 6 | |||
Maximum number of incoming connections per identity over primary port. | ||||||
enableAddressReuse | bool | false | false | |||
true if the server should reuse ports already in use. | ||||||
enableSingleThreadPool | bool | false | false | |||
true if a single thread pool should be used, false if multiple thread pools should be used. | ||||||
enableCacheDatabaseStorage | bool | true | true | |||
true if cache data should be saved in a database. | ||||||
enableAutoSyncCleanup | bool | true | false | |||
true if temporary sync files should be automatically cleaned up. Note: This should be false if broker process is running. | ||||||
fileDatabaseBatchSize | uint32_t | 100 | 100 | |||
Maximum number of payloads to store in each file database disk file. Note: This is recommended to be a factor of 10000. | ||||||
enableTransactionSpamThrottling | bool | true | true | |||
true if transaction spam throttling should be enabled. | ||||||
transactionSpamThrottlingMaxBoostFee | Amount | 10'000'000 | 10'000'000 | |||
Maximum fee that will boost a transaction through the spam throttle when spam throttling is enabled. | ||||||
maxHashesPerSyncAttempt | uint32_t | 84 | 370 | |||
Maximum number of hashes per sync attempt. | ||||||
maxBlocksPerSyncAttempt | uint32_t | 42 | 360 | |||
Maximum number of blocks per sync attempt. | ||||||
maxChainBytesPerSyncAttempt | utils::FileSize | 100MB | 100MB | |||
Maximum chain bytes per sync attempt. | ||||||
shortLivedCacheTransactionDuration | utils::TimeSpan | 10m | 10m | |||
Duration of a transaction in the short lived cache. | ||||||
shortLivedCacheBlockDuration | utils::TimeSpan | 100m | 100m | |||
Duration of a block in the short lived cache. | ||||||
shortLivedCachePruneInterval | utils::TimeSpan | 90s | 90s | |||
Time between short lived cache pruning. | ||||||
shortLivedCacheMaxSize | uint32_t | 10'000'000 | 10'000'000 | |||
Maximum size of a short lived cache. | ||||||
minFeeMultiplier | BlockFeeMultiplier | 0 | 100 | |||
Minimum fee multiplier of transactions to propagate and include in blocks. | ||||||
maxTimeBehindPullTransactionsStart | utils::TimeSpan | 5m | 5m | |||
Transaction pulls will only be initiated when the timestamp of the last block in the local chain is within this value of the network time. | ||||||
transactionSelectionStrategy | model::TransactionSelectionStrategy | oldest | oldest | |||
Transaction selection strategy used for syncing and harvesting unconfirmed transactions. | ||||||
unconfirmedTransactionsCacheMaxResponseSize | utils::FileSize | 5MB | 5MB | |||
Maximum size of an unconfirmed transactions response. | ||||||
unconfirmedTransactionsCacheMaxSize | utils::FileSize | 20MB | 20MB | |||
Maximum size of the unconfirmed transactions cache. | ||||||
connectTimeout | utils::TimeSpan | 10s | 15s | |||
Timeout for connecting to a peer. | ||||||
syncTimeout | utils::TimeSpan | 60s | 5m | |||
Timeout for syncing with a peer. | ||||||
socketWorkingBufferSize | utils::FileSize | 512KB | 16KB | |||
Initial socket working buffer size (socket reads will attempt to read buffers of roughly this size). | ||||||
socketWorkingBufferSensitivity | uint32_t | 100 | 1 | |||
Socket working buffer sensitivity (lower values will cause memory to be more aggressively reclaimed). Note: 0 will disable memory reclamation. | ||||||
maxPacketDataSize | utils::FileSize | 150MB | 150MB | |||
Maximum packet data size. | ||||||
blockDisruptorSlotCount | uint32_t | 4096 | 4096 | |||
Number of slots in the block disruptor circular buffer. | ||||||
blockDisruptorMaxMemorySize | utils::FileSize | 300MB | 300MB | |||
Maximum memory of all elements in the block disruptor circular buffer. | ||||||
blockElementTraceInterval | uint32_t | 1 | 1 | |||
Multiple of elements at which a block element should be traced through queue and completion. | ||||||
transactionDisruptorSlotCount | uint32_t | 8192 | 8192 | |||
Number of slots in the transaction disruptor circular buffer. | ||||||
transactionDisruptorMaxMemorySize | utils::FileSize | 20MB | 20MB | |||
Maximum memory of all elements in the transaction disruptor circular buffer. | ||||||
transactionElementTraceInterval | uint32_t | 10 | 10 | |||
Multiple of elements at which a transaction element should be traced through queue and completion. | ||||||
enableDispatcherAbortWhenFull | bool | true | false | |||
true if the process should terminate when any dispatcher is full. | ||||||
enableDispatcherInputAuditing | bool | true | false | |||
true if all dispatcher inputs should be audited. | ||||||
maxTrackedNodes | uint32_t | 5'000 | 5'000 | |||
Maximum number of nodes to track in memory. | ||||||
minPartnerNodeVersion | ionet::NodeVersion | 1.0.1.0 | ||||
Minimum supported version of partner nodes. | ||||||
maxPartnerNodeVersion | ionet::NodeVersion | 1.0.255.255 | ||||
Maximum supported version of partner nodes. | ||||||
trustedHosts | unordered_set | 127.0.0.1, 172.20.0.25 | ||||
Trusted hosts that are allowed to execute protected API calls on this node. | ||||||
localNetworks | unordered_set | 127.0.0.1 | 127.0.0.1, 172.20.0.25 | |||
Networks that should be treated as local. | ||||||
listenInterface | string | 0.0.0.0 | 0.0.0.0 | |||
Network interface on which to listen. | ||||||
cache_database | ||||||
enableStatistics | bool | false | false | |||
true if operational statistics should be captured and logged. | ||||||
maxOpenFiles | uint32_t | 0 | 0 | |||
Maximum number of open files. | ||||||
maxBackgroundThreads | uint32_t | 0 | 0 | |||
Maximum number of background threads. | ||||||
maxSubcompactionThreads | uint32_t | 0 | 0 | |||
Maximum number of threads that will concurrently perform a compaction. | ||||||
blockCacheSize | utils::FileSize | 0MB | 0MB | |||
Block cache size. Note: Optimizes for point lookup when nonzero. | ||||||
memtableMemoryBudget | utils::FileSize | 0MB | 0MB | |||
Memtable memory budget. Note: Optimizes level style compaction when nonzero. | ||||||
maxWriteBatchSize | utils::FileSize | 5MB | 5MB | |||
Maximum write batch size. | ||||||
localnode | ||||||
host | string | |||||
Node host (leave empty to auto-detect IP). | ||||||
friendlyName | string | 03A8F7D | ||||
Node friendly name (leave empty to use address). | ||||||
version | ionet::NodeVersion | 1.0.2.0 | ||||
Node version. | ||||||
roles | ionet::NodeRoles | IPv4,Peer | Peer,Api | |||
Node roles. | ||||||
outgoing_connections | ||||||
maxConnections | uint16_t | 10 | 10 | |||
Maximum number of active connections. | ||||||
maxConnectionAge | uint16_t | 200 | 200 | |||
Maximum connection age. | ||||||
maxConnectionBanAge | uint16_t | 20 | 20 | |||
Maximum connection ban age. | ||||||
numConsecutiveFailuresBeforeBanning | uint16_t | 3 | 3 | |||
Number of consecutive connection failures before a connection is banned. | ||||||
incoming_connections | ||||||
maxConnections | uint16_t | 512 | 512 | |||
Maximum number of active connections. | ||||||
maxConnectionAge | uint16_t | 200 | 200 | |||
Maximum connection age. | ||||||
maxConnectionBanAge | uint16_t | 20 | 20 | |||
Maximum connection ban age. | ||||||
numConsecutiveFailuresBeforeBanning | uint16_t | 3 | 3 | |||
Number of consecutive connection failures before a connection is banned. | ||||||
backlogSize | uint16_t | 512 | 512 | |||
Maximum size of the pending connections queue. | ||||||
banning | ||||||
defaultBanDuration | utils::TimeSpan | 12h | 12h | |||
Default duration for banning. | ||||||
maxBanDuration | utils::TimeSpan | 72h | 12h | |||
Maximum duration for banning. | ||||||
keepAliveDuration | utils::TimeSpan | 48h | 48h | |||
Duration to keep account in container after the ban expired. | ||||||
maxBannedNodes | uint32_t | 5'000 | 5'000 | |||
Maximum number of banned nodes. | ||||||
numReadRateMonitoringBuckets | uint16_t | 4 | 4 | |||
Number of read rate monitoring buckets ( 0 to disable read rate monitoring). | ||||||
readRateMonitoringBucketDuration | utils::TimeSpan | 15s | 15s | |||
Duration of each read rate monitoring bucket. | ||||||
maxReadRateMonitoringTotalSize | utils::FileSize | 100MB | 100MB | |||
Maximum size allowed during full read rate monitoring period. | ||||||
minTransactionFailuresCountForBan | uint32_t | 8 | 8 | |||
Minimum number of transaction failures to trigger a ban. | ||||||
minTransactionFailuresPercentForBan | uint32_t | 10 | 10 | |||
Minimum percentage of transaction failures to trigger a ban. |
resources/config-harvesting.properties
v1.0.2.0
Property | Type | Default value PRIVATE | Default value MAINNET | |||
---|---|---|---|---|---|---|
harvesting | ||||||
harvesterSigningPrivateKey | string | |||||
Harvester signing private key. Used only when harvesting is enabled. | ||||||
harvesterVrfPrivateKey | string | |||||
Harvester VRF private key. Used only when harvesting is enabled. | ||||||
enableAutoHarvesting | bool | true | true | |||
Enables harvesting using configured harvester keys when true . | ||||||
maxUnlockedAccounts | uint32_t | 5 | 10 | |||
Maximum number of unlocked accounts, i.e., the maximum number of delegated harvesting accounts. | ||||||
delegatePrioritizationPolicy | harvesting::DelegatePrioritizationPolicy | Importance | Importance | |||
Prioritization policy used to keep accounts once the maximum number of delegated harvesting accounts is reached. Possible values are Age and Importance . | ||||||
beneficiaryAddress | Address | |||||
Address of the account receiving part of the harvested fee. |