Directory chain configuration
Module arguments
The Directory Chain supports the following module arguments:
Name | Description | Type | Required |
---|---|---|---|
initial_provider | Public key of the initial provider responsible for initializing the chain. | pubkey | ✅ |
genesis_node | Information about the genesis node used during chain initialization. | node_info | ✅ |
common | Configuration parameters for the common module. | map | ✅ |
proposal_blockchain | Configuration parameters for the proposal_blockchain module. | map | ✅ |
auth_service | Configuration parameters for the auth_service module. | map | ✅ |
Module arguments for common
module
Name | Description | Type | Required |
---|---|---|---|
allow_blockchain_dependencies | Indicates whether dependencies between blockchains are permitted. | boolean | ✅ |
provider_quota_max_actions_per_day | Maximum number of actions a provider can perform per day. | int | ✅ |
Module arguments for proposal_blockchain
module
Name | Description | Type | Required |
---|---|---|---|
max_config_path_depth | Maximum depth for configuration file paths. | integer | ✅ |
max_config_size | Maximum size (in bytes) for configuration files. | integer | ✅ |
max_block_size | Maximum size (in bytes) for each block in the blockchain. | integer | ✅ |
min_inter_block_interval | Minimum time interval (in milliseconds) between the creation of blocks. | integer | ✅ |
min_fast_revolt_status_timeout | Minimum timeout (in milliseconds) for fast revolt status changes. | integer | ✅ |
allowed_dapp_chain_gtx_modules | Set of allowed GTX modules for decentralized application (dapp) chains. | set | ✅ |
allowed_dapp_chain_sync_exts | Set of allowed synchronization extensions for dapp chains. | set | ✅ |
Module arguments for auth_service
module
Name | Description | Type | Required |
---|---|---|---|
pubkey | Public key used to sign operations for the auth_service module. | pubkey | ✅ |
include_system_cluster | Specifies whether to include the system cluster in the authorization service. | boolean | ✅ |
Config type
Type | Fields |
---|---|
node_info | pubkey host: text port: integer api_url: text territory: text? |
ICMF configuration
To enable ICMF, set up configurations to listen for specific events.
From anchoring chain:
G_configuration_updated
G_configuration_failed
G_last_anchored_heights
From economy chain:
G_create_cluster
G_create_container
G_upgrade_container
G_stop_container
G_restart_container
G_remove_container
Configuration example:
mainnet:
module: management_chain_mainnet
config:
config_consensus_strategy: HEADER_HASH
blockstrategy:
maxblocktime: 2000
revolt:
fast_revolt_status_timeout: 2000
signers:
- x"0350fe40766bc0ce8d08b3f5b810e49a8352fdd458606bd5fafe5acdcdc8ff3f57"
sync_ext:
- "net.postchain.d1.icmf.IcmfReceiverSynchronizationInfrastructureExtension"
gtx:
modules:
- "net.postchain.d1.icmf.IcmfSenderGTXModule"
- "net.postchain.d1.icmf.IcmfReceiverGTXModule"
- "net.postchain.eif.transaction.signerupdate.directorychain.SignerUpdateGTXModule"
icmf:
receiver:
anchoring:
topics:
- G_configuration_updated
- G_configuration_failed
- G_last_anchored_heights
global:
topics:
- G_create_cluster
- G_create_container
- G_upgrade_container
- G_stop_container
- G_restart_container
- G_remove_container
moduleArgs:
common.init:
initial_provider: ${INITIAL_PROVIDER:-03ECD350EEBC617CBBFBEF0A1B7AE553A748021FD65C7C50C5ABB4CA16D4EA5B05}
genesis_node:
- ${GENESIS_NODE:-0350fe40766bc0ce8d08b3f5b810e49a8352fdd458606bd5fafe5acdcdc8ff3f57}
- ${GENESIS_HOST_NAME:-localhost}
- 9870
- ${GENESIS_API_URL:-http://localhost:7740}
- ${GENESIS_TERRITORY}
common:
allow_blockchain_dependencies: false
provider_quota_max_actions_per_day: 100
auth_service:
pubkey: x"02B6F2967CF9AFC4D289EF475A2C2DDEC9EAB79AC60C1C99683E3134074619E635"
include_system_cluster: true
proposal_blockchain.util:
max_config_path_depth: 10
max_config_size: 5242880 # 5 MiB
max_block_size: 27262976 # 26 MiB
min_inter_block_interval: 1000
min_fast_revolt_status_timeout: 2000
allowed_dapp_chain_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"
allowed_dapp_chain_sync_exts:
- "net.postchain.d1.icmf.IcmfReceiverSynchronizationInfrastructureExtension"
- "net.postchain.eif.EifSynchronizationInfrastructureExtension"
Delayed blockchain configuration
A blockchain can support delayed configuration updates to provide users with advance notice of changes. When enabled, a configuration proposal is applied only after the configured delay period has passed, even after gaining sufficient provider votes.
Enabling delay
To enable this feature, set config_delay
to the desired delay in milliseconds.
blockchains:
name_of_blockchain:
config:
directory_chain:
config_delay: 0 # Delay in milliseconds
Querying delayed configurations
Use the list_delayed_blockchain_configs
query to retrieve existing delayed configuration proposals.