Configuration properties
This topic outlines the key configuration options available in the BaseBlockChainConfiguration
, providing
descriptions, types, and default values for each parameter.
Note: The name of a blockchain is mutable. It can be updated after deployment using the
chr deployment proposal rename
command, allowing for greater flexibility if changes to the blockchain’s name are
needed. For more details, see the Chromia CLI documentation.
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. | 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. | int | 26 * 1024 * 1024 |
maxblocktransactions | Maximum number of transactions per block. | int | 100 |
mininterblockinterval | Minimum time (in milliseconds) between two consecutive blocks. | 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. | 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 |