Skip to main content

Directory chain configuration

Module arguments

The Directory Chain supports the following module arguments:

NameDescriptionTypeRequired
initial_providerPublic key of the initial provider responsible for initializing the chain.pubkey
genesis_nodeInformation about the genesis node used during chain initialization.node_info
commonConfiguration parameters for the common module.map
proposal_blockchainConfiguration parameters for the proposal_blockchain module.map
auth_serviceConfiguration parameters for the auth_service module.map

Module arguments for common module

NameDescriptionTypeRequired
allow_blockchain_dependenciesIndicates whether dependencies between blockchains are permitted.boolean
provider_quota_max_actions_per_dayMaximum number of actions a provider can perform per day.int

Module arguments for proposal_blockchain module

NameDescriptionTypeRequired
max_config_path_depthMaximum depth for configuration file paths.integer
max_config_sizeMaximum size (in bytes) for configuration files.integer
max_block_sizeMaximum size (in bytes) for each block in the blockchain.integer
min_inter_block_intervalMinimum time interval (in milliseconds) between the creation of blocks.integer
min_fast_revolt_status_timeoutMinimum timeout (in milliseconds) for fast revolt status changes.integer
allowed_dapp_chain_gtx_modulesSet of allowed GTX modules for decentralized application (dapp) chains.set
allowed_dapp_chain_sync_extsSet of allowed synchronization extensions for dapp chains.set

Module arguments for auth_service module

NameDescriptionTypeRequired
pubkeyPublic key used to sign operations for the auth_service module.pubkey
include_system_clusterSpecifies whether to include the system cluster in the authorization service.boolean

Config type

TypeFields
node_infopubkey
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.