The settings files are located in the directory /opt/cellframe-node/etc/network
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=195.154.133.160
# (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=[195.154.133.160, 62.210.90.227]
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]
[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