Configuration properties
This topic outlines the key configuration options available in the BaseBlockChainConfiguration
, providing
descriptions, types, and default values for each parameter.
Core configuration properties
Name | Description | Type | Required | Default |
---|---|---|---|---|
signers | List of blockchain signers. | array | ✅ | |
sync | Specifies the synchronization infrastructure implementation. | string | "" | |
sync_ext | Extensions for the synchronization infrastructure. For mainnet, these are the default allowed synchronization extensions: net.postchain.d1.icmf.IcmfReceiverSynchronizationInfrastructureExtension , net.postchain.eif.EifSynchronizationInfrastructureExtension | array | [] | |
configurationfactory | Defines the configuration factory implementation. | string | ✅ | |
txqueuecapacity | Maximum number of transactions that can be queued before processing. | int | 2500 | |
historic_brid | Sets the historical Blockchain RID when forking a blockchain. | bytea | ||
dependencies | Specifies blockchain dependencies in raw format (GTV format). | gtv | ||
config_consensus_strategy | Defines the consensus strategy for configuration settings. | string | ||
query_cache_ttl_seconds | The maximum duration (in seconds) for caching query responses. 0 disables caching entirely. | int | 0 | |
max_block_future_time | Defines the maximum allowable time difference between a block’s timestamp and the current time (in milliseconds). This ensures that blocks cannot be excessively post-dated, maintaining blockchain integrity. A value of -1 disables this check entirely. | int | 60000 | |
add_primary_key_to_header | When enabled, the primary node includes its public key in the block header. However, this value is not verified and should only be trusted for features where nodes are incentivized to honestly include their own key. | boolean | false |
Block strategy configuration (under the key blockstrategy
)
Name | Description | Type | Default |
---|---|---|---|
name | The block strategy class implementing net.postchain.core.block.BlockBuildingStrategy . | string | |
maxblocksize | Maximum block size in bytes. For mainnet, the maximum allowed block size is 27262976 (26 MiB). | int | 26 * 1024 * 1024 |
maxblocktransactions | Maximum number of transactions per block. | int | 100 |
mininterblockinterval | Minimum time (in milliseconds) between two consecutive blocks. For mainnet, the minimum value allowed for inter block interval is 1000 (1 second). | int | 25 |
maxblocktime | Maximum time (in milliseconds) to wait before starting to build a block. If the queue is empty, an empty block will be built. | int | 30000 |
maxtxdelay | Maximum time (in milliseconds) to wait after the first transaction is received before building a block. | int | 1000 |
minbackofftime | Minimum time (in milliseconds) to wait before retrying a failed block build. | int | 20 |
maxbackofftime | Maximum time (in milliseconds) to wait before retrying a failed block build. | int | 2000 |
maxspecialendtransactionsize | Maximum size (in bytes) for a special end transaction in a block. | int | 1024 |
preemptiveblockbuilding | Enables or disables preemptive block building. | boolean | true |
GTX configuration (under the key gtx
)
Name | Description | Type | Default |
---|---|---|---|
max_transaction_size | Maximum allowable size (in bytes) for individual transactions. | int | 25 * 1024 * 1024 |
modules | Specifies the GTX modules to be included. For mainnet, these are the default allowed GTX modules: net.postchain.rell.module.RellPostchainModuleFactory , net.postchain.gtx.StandardOpsGTXModule , net.postchain.d1.icmf.IcmfSenderGTXModule , net.postchain.d1.icmf.IcmfReceiverGTXModule , net.postchain.d1.iccf.IccfGTXModule , net.postchain.eif.EifGTXModule , net.postchain.web.WebStaticGTXModuleFactory. | array | |
sqlmodules | Specifies the SQL modules to be included for GTX. | array | |
allowoverrides | Determines whether operations and queries with the same name can be overridden by other GTX modules. | boolean | false |
Revolt configuration (under the key revolt
)
Name | Description | Type | Default |
---|---|---|---|
timeout | Default revolt timeout period (in milliseconds). | int | 10000 |
exponential_delay_initial | Initial delay (in milliseconds) before increasing the revolt timeout. | int | 1000 |
exponential_delay_power_base | The power base used to exponentially increase the revolt timeout per round. | string | 1.2 |
exponential_delay_max | Maximum allowable revolt timeout (in milliseconds). | int | 600000 |
fast_revolt_status_timeout | Time (in milliseconds) since the last status message before a node is considered disconnected. | int | -1 |
revolt_when_should_build_block | Begins counting the revolt timeout when it’s considered possible to build a block. | boolean | false |