Configuring node properties

There is a large number of node-related settings that can be customized in Symbol.

The easiest way to change them is by using Symbol Bootstrap’s custom presets (read Using Symbol Bootstrap): Put the settings in a YAML file and pass it to symbol-bootstrap config using the -c parameter. For example:

friendlyName: my-uber-node
dataDirectory: ./data

These settings can also be directly provided to catapult-server 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.

User configuration

User configuration settings.
From resources/config-user.properties v0.10.0.3
PropertyTypeDefault value
PRIVATE
Default value
TESTNET
account
enableDelegatedHarvestersAutoDetectionbooltruetrue
true if potential delegated harvesters should be automatically detected.
storage
dataDirectorystring../data./data
Data directory.
certificateDirectorystring../certificate./userconfig/resources/cert
Certificate directory.
votingKeysDirectorystring../votingkeys./data/votingkeys
Voting keys directory.
pluginsDirectorystring./usr/catapult/lib
Plugins directory.

Node configuration

Node configuration settings.
From resources/config-node.properties v0.10.0.3
PropertyTypeDefault value
PRIVATE
Default value
TESTNET
node
portunsigned short79007900
Server port.
maxIncomingConnectionsPerIdentityuint32_t36
Maximum number of incoming connections per identity over primary port.
enableAddressReuseboolfalsefalse
true if the server should reuse ports already in use.
enableSingleThreadPoolboolfalsefalse
true if a single thread pool should be used, false if multiple thread pools should be used.
enableCacheDatabaseStoragebooltruetrue
true if cache data should be saved in a database.
enableAutoSyncCleanupbooltruefalse
true if temporary sync files should be automatically cleaned up.
Note: This should be false if broker process is running.
enableTransactionSpamThrottlingbooltruetrue
true if transaction spam throttling should be enabled.
transactionSpamThrottlingMaxBoostFeeAmount10'000'00010'000'000
Maximum fee that will boost a transaction through the spam throttle when spam throttling is enabled.
maxHashesPerSyncAttemptuint32_t84610
Maximum number of hashes per sync attempt.
maxBlocksPerSyncAttemptuint32_t42602
Maximum number of blocks per sync attempt.
maxChainBytesPerSyncAttemptutils::FileSize100MB100MB
Maximum chain bytes per sync attempt.
shortLivedCacheTransactionDurationutils::TimeSpan10m10m
Duration of a transaction in the short lived cache.
shortLivedCacheBlockDurationutils::TimeSpan100m100m
Duration of a block in the short lived cache.
shortLivedCachePruneIntervalutils::TimeSpan90s90s
Time between short lived cache pruning.
shortLivedCacheMaxSizeuint32_t10'000'000200'000
Maximum size of a short lived cache.
minFeeMultiplierBlockFeeMultiplier0100
Minimum fee multiplier of transactions to propagate and include in blocks.
transactionSelectionStrategymodel::TransactionSelectionStrategyoldestmaximize-fee
Transaction selection strategy used for syncing and harvesting unconfirmed transactions.
unconfirmedTransactionsCacheMaxResponseSizeutils::FileSize20MB20MB
Maximum size of an unconfirmed transactions response.
unconfirmedTransactionsCacheMaxSizeuint32_t1'000'00050'000
Maximum size of the unconfirmed transactions cache.
connectTimeoututils::TimeSpan10s15s
Timeout for connecting to a peer.
syncTimeoututils::TimeSpan60s120s
Timeout for syncing with a peer.
socketWorkingBufferSizeutils::FileSize512KB512KB
Initial socket working buffer size (socket reads will attempt to read buffers of roughly this size).
socketWorkingBufferSensitivityuint32_t100100
Socket working buffer sensitivity (lower values will cause memory to be more aggressively reclaimed).
Note: 0 will disable memory reclamation.
maxPacketDataSizeutils::FileSize150MB150MB
Maximum packet data size.
blockDisruptorSizeuint32_t40964096
Size of the block disruptor circular buffer.
blockElementTraceIntervaluint32_t11
Multiple of elements at which a block element should be traced through queue and completion.
transactionDisruptorSizeuint32_t1638416384
Size of the transaction disruptor circular buffer.
transactionElementTraceIntervaluint32_t1010
Multiple of elements at which a transaction element should be traced through queue and completion.
enableDispatcherAbortWhenFullbooltruefalse
true if the process should terminate when any dispatcher is full.
enableDispatcherInputAuditingbooltruefalse
true if all dispatcher inputs should be audited.
maxCacheDatabaseWriteBatchSizeutils::FileSize5MB5MB
Maximum cache database write batch size.
maxTrackedNodesuint32_t5'0005'000
Maximum number of nodes to track in memory.
minPartnerNodeVersionionet::NodeVersion
Minimum supported version of partner nodes.
maxPartnerNodeVersionionet::NodeVersion
Maximum supported version of partner nodes.
trustedHostsunordered_set127.0.0.1, 172.20.0.25
Trusted hosts that are allowed to execute protected API calls on this node.
localNetworksunordered_set127.0.0.1127.0.0.1, 172.20.0.25
Networks that should be treated as local.
listenInterfacestring
Network interface on which to listen. Leave empty to use default interface.
localnode
hoststringapi-node-0
Node host (leave empty to auto-detect IP).
friendlyNamestringapi-node-0
Node friendly name (leave empty to use address).
versionionet::NodeVersion0
Node version.
rolesionet::NodeRolesPeerApi
Node roles.
outgoing_connections
maxConnectionsuint16_t1010
Maximum number of active connections.
maxConnectionAgeuint16_t200200
Maximum connection age.
maxConnectionBanAgeuint16_t2020
Maximum connection ban age.
numConsecutiveFailuresBeforeBanninguint16_t33
Number of consecutive connection failures before a connection is banned.
incoming_connections
maxConnectionsuint16_t512512
Maximum number of active connections.
maxConnectionAgeuint16_t200200
Maximum connection age.
maxConnectionBanAgeuint16_t2020
Maximum connection ban age.
numConsecutiveFailuresBeforeBanninguint16_t33
Number of consecutive connection failures before a connection is banned.
backlogSizeuint16_t512512
Maximum size of the pending connections queue.
banning
defaultBanDurationutils::TimeSpan12h12h
Default duration for banning.
maxBanDurationutils::TimeSpan72h12h
Maximum duration for banning.
keepAliveDurationutils::TimeSpan48h48h
Duration to keep account in container after the ban expired.
maxBannedNodesuint32_t5'0005'000
Maximum number of banned nodes.
numReadRateMonitoringBucketsuint16_t44
Number of read rate monitoring buckets (0 to disable read rate monitoring).
readRateMonitoringBucketDurationutils::TimeSpan15s15s
Duration of each read rate monitoring bucket.
maxReadRateMonitoringTotalSizeutils::FileSize100MB100MB
Maximum size allowed during full read rate monitoring period.

Harvesting Configuration

Harvesting configuration settings.
From resources/config-harvesting.properties v0.10.0.3
PropertyTypeDefault value
PRIVATE
Default value
TESTNET
harvesting
harvesterSigningPrivateKeystring
Harvester signing private key.
harvesterVrfPrivateKeystring
Harvester vrf private key.
enableAutoHarvestingboolfalsetrue
true if auto harvesting is enabled.
maxUnlockedAccountsuint32_t55
Maximum number of unlocked accounts.
delegatePrioritizationPolicyharvesting::DelegatePrioritizationPolicyImportanceImportance
Delegate harvester prioritization policy.
beneficiaryAddressAddress
Address of the account receiving part of the harvested fee.