The settings files are located in the directory
Each network has its own file of settings <network name> .cfg and directory <network name> with the settings of the chains of this network.
# Cellframe Blockchain: development network # General section [general] # Network ID id=0x000000000000aaaa # network name name=kelvpn-minkowski # native network token native_ticker=tKEL # network type (optional) type=testing # Possible values: light, full, archive, master, root node-role=full # alias of the current node is specified here, this node must exist in the list of nodes seed_nodes_aliases=[minkowski.kelvpn.root.0,minkowski.kelvpn.root.1,minkowski.kelvpn.root.2] # (optional) this specifies the IP address of the current node, this parameter replaces node-alias node-ipv4=184.108.40.206 # (optional) unique prefix to create a group in the mempool gdb_groups_prefix=private # list of addresses, ports, remote nodes that the current node will contact seed_nodes_ipv4=[220.127.116.11, 18.104.22.168] seed_nodes_port=[8097, 8097] seed_nodes_aliases=[cellframe.testnet.root.0,cellframe.testnet.root.1] seed_nodes_addrs=[ffff::0000::0000::0001,ffff::0000::0000::0002] # If the chains of the network have a dag-poa consensus, then to create events, a certificate containing a private key must be specified here to sign new events, # moreover, in the consensus settings, a certificate with a public key corresponding to this certificate must be specified [dag-poa] events-sign-cert=mycert # If the network chains have a dag-pos consensus, then to create events, a local wallet containing a private key must be specified here to sign new events [dag-pos] events-sign-wallet=mywallet # Access to private networks requires authentication. # At the moment, authentication is specified only in the format of certificates and only the ca_list parameter, which contains a list of hashes of applicable certificates. # IMPORTANT: If a user of such a network does not have a certificate in the config response parameter, then he will not be able to synchronize with this network or receive service from it [auth] type=ca acl_accept_ca_list= acl_accept_ca_gdb= acl_accept_ca_chains=all # (optional) The network config specifies the signature parameters depending on the network consensus # For consensus dag-poa [dag-poa] events-sign-cert=kelvpn-minkowski.root.0 # For block-TON consensus [block tone] blocks-sign-cert=minkowski.master.pvt.0
The directory <network name> may contain several files with the settings of the chains of this network <chain name>.cfg.
All chains have a common section
[chain] # unique chain ID id=0x0000000000000000 shard_id=0x0000000000000000 # chain name name=zerochain # Possible values [token, emission, transaction] # What types of datums can contain a chain, possible types - token, issue, transaction, certificate datum_types=[token,emission,ca,transaction] # Default datum types, possible types - token, emission, transaction, certificate default_datum_types=[token,emission,ca] # When autoprocessing is enabled, the types of datums that will be subject to autoprocessing are specified mempool_auto_types= # type of consensus for the chain, possible values dag_poa, dag_pos, gdb, block_ton consensus=dag_poa
Depending on the type of chain consensus, the rest of the settings will be different.
# Directory where files with events for the current chain will be stored [files] storage_dir=/opt/cellframe-node/var/lib/network/cellframe-testnet/zerochain/ [dag] # # Whether to add hashes of other events to the event is_single_line=true # Whether the blockchain is split into shards, not yet supported is_celled=false # Chains are written directly to files, otherwise, first into a round, from a round they can be overwritten into a file with the dag round complete command is_add_directly=false # Maximum number of hashes in an event datum_add_hashes_count=1
# directory where files with events for the current chain will be stored [files] storage_dir=../../../var/lib/network/kelvpn-minkowski/main/ [blocks] # Whether the blockchain is split into shards, not yet supported is_celled=false # Use the first event is_static_genesis_event=true # This is the hash of the first event static_genesis_event=0x5C6C3BDD89F7317A1E3D01E6C440021D81C17F16431ECF3D2BFCA0BE50143728 ### Additional settings for consensus dag_poa ```ini [dag-poa] # Prefix for the names of certificates used to check event signatures auth_certs_prefix=cellframe.testnet.root # Maximum number of certificates auth_certs_number=7 # The number of signatures with which the event should be signed, currently only 1 is supported auth_certs_number_verify=1 #4 # Additional directory where to look for certificates for checking event signatures auth_certs_dir=/opt/cellframe-node/share/ca
# Proof-of-State consensus config [dag-pos] # Tokens hold and hold_value must be equel size # KELT - test token, KEL - main tokem # To successfully check the event, it must have tokens of at least one of the following types tokens_hold=[KELT,KEL] # 1000 coins for both # The emission of tokens must be at least the following values tokens_hold_value=[1000000000000000,1000000000000000]
[gdb] # Celled means sharded # Whether the blockchain is split into shards, not yet supported celled=false
[block tone] # TON validator address ton_nodes_addrs=[1234::0000::0000::0000] # Prefix of used certificates auth_certs_prefix=minkowski.master # Minimum number of signatures. 2/3 of their number auth_certs_number=2 # Steak is not currently supported stake_tokens=0 stake_tokens_value=0 # Output debugging information about the operation of the consensus consensus_debug=true validators_list_by_stake=false # Delay when synchronizing rounds round_start_sync_timeout=10 # Start of the round at a multiple of the number of participants round_start_multiple_of=35 # Permissible time discrepancy according to the internal clock of the validator allowed_clock_offset=10 # Session delay in minutes session_idle_min=10 # Maximum number of participants round_candidates_max=5 # Delay announcement of next candidate next_candidate_delay=2 # Maximum number of retries round_attempts_max=5 # Round duration round_attempt_duration=45 # Delay first message first_message_delay=2 # Number of attempts for your candidate my_candidate_attempts_max=2