Skip to content

Config parameter reference

Configuration parameters are crucial for setting up and operating a Furtheon-powered chain. You can configure these parameters using the genesis and server commands. Before running these commands, it is essential to generate keys using the polybft-secrets command.

For information on the available configuration flags and their descriptions for customizing the genesis configuration of an Furtheon-powered chain, refer to the categorized tabs below.

PolyBFT Configuration Parameter Reference

Parameter Description Default Value Mandatory
--account The flag indicating whether a new account is created TRUE NO
--config string The path to the SecretsManager config file "" NO
--data-dir string The directory for the Furtheon data if the local FS is used "" YES
--insecure The flag indicating whether the secrets stored locally are encrypted FALSE NO
--network The flag indicating whether a new Network key is created TRUE NO
--num int The number of secrets to be created (only for local FS) 1 NO
--output The flag indicating whether to output existing secrets FALSE NO
--private The flag indicating whether the private key is printed FALSE NO

:::info Mutually Exclusive Paramaters

  • --config and --data-dir: These flags are mutually exclusive. Use either --config to specify the path to the SecretsManager config file or --data-dir to set the directory for the Furtheon data if the local FS is used.

  • --num and --config: These flags are mutually exclusive. Set --num to define the number of secrets to be created (only for local FS) or use --config to provide the SecretsManager config file path.

:::

Genesis Configuration Parameter Reference

Parameter Description Default Value Mandatory Example Reconfigurable at Runtime
--block-tracker-poll-interval Interval (number of seconds) at which block tracker polls for latest block at rootchain. 1s NO genesis --block-tracker-poll-interval "1s" NO
--bridge-allow-list-admin List of addresses to use as admin accounts in the bridge allow list. []string{} NO genesis --bridge-allow-list-admin "0x2f82ad5785F6f3Fd242e7EC7a03c2cDfBA6cC6D1" NO
--bridge-allow-list-enabled List of addresses to enable by default in the bridge allow list. []string{} NO genesis --bridge-allow-list-enabled "0xbB39871E4e399b22428FdfA9E4e4Ca67842EA8Cd" NO
--bridge-block-list-admin List of addresses to use as admin accounts in the bridge block list. N/A NO genesis --bridge-block-list-admin "0xAddress1" NO
--bridge-block-list-enabled List of addresses to enable by default in the bridge block list. N/A NO genesis --bridge-block-list-enabled "0xAddress2" NO
--chain-id The ID of the chain. 100 NO genesis --chain-id "100" NO
--contract-deployer-allow-list-admin List of addresses to use as admin accounts in the contract deployer allow list. N/A NO genesis --contract-deployer-allow-list-admin "0xAddress3" NO
--contract-deployer-allow-list-enabled List of addresses to enable by default in the contract deployer allow list. N/A NO genesis --contract-deployer-allow-list-enabled "0xAddress4" NO
--contract-deployer-block-list-admin List of addresses to use as admin accounts in the contract deployer block list. N/A NO genesis --contract-deployer-block-list-admin "0xAddress5" NO
--contract-deployer-block-list-enabled List of addresses to enable by default in the contract deployer block list. N/A NO genesis --contract-deployer-block-list-enabled "0xAddress6" NO
--ibft-validator Addresses to be used as IBFT validators. N/A NO genesis --ibft-validator "0xAddress7" NO
--ibft-validator-type The type of validators in IBFT. "bls" NO genesis --ibft-validator-type "bls" NO
--ibft-validators-prefix-path Prefix path for validator folder directory. N/A NO genesis --ibft-validators-prefix-path "/path/to/validators" NO
--max-validator-count The maximum number of validators in the validator set for PoS. 9007199254740990 NO genesis --max-validator-count "9007199254740990" NO
--min-validator-count The minimum number of validators in the validator set for PoS. 1 NO genesis --min-validator-count "1" NO
--pos Flag indicating use of Proof of Stake IBFT. N/A NO genesis --pos NO
--proxy-contracts-admin Admin for proxy contracts. N/A NO genesis --proxy-contracts-admin "0xAddress8" NO
--reward-token-code Hex encoded reward token byte code. N/A NO genesis --reward-token-code "0xHexCode" NO
--transactions-allow-list-admin List of addresses to use as admin accounts in the transactions allow list. N/A NO genesis --transactions-allow-list-admin "0xAddress9" NO
--transactions-allow-list-enabled List of addresses to enable by default in the transactions allow list. N/A NO genesis --transactions-allow-list-enabled "0xAddress10" NO
--transactions-block-list-admin List of addresses to use as admin accounts in the transactions block list. N/A NO genesis --transactions-block-list-admin "0xAddress11" NO
--transactions-block-list-enabled List of addresses to enable by default in the transactions block list. N/A NO genesis --transactions-block-list-enabled "0xAddress12" NO
--block-gas-limit The maximum amount of gas used by all transactions in a block 5242880 NO genesis --block-gas-limit "10000000" NO
--block-time The predefined period which determines block creation frequency 2s NO genesis --block-time "10s" NO
--block-time-drift Configuration for block time drift value (in seconds). Defines the time slot in which a new block can be created 10 NO genesis --block-time-drift "20" NO
--bootnode MultiAddr URL for p2p discovery bootstrap. This flag can be used multiple times. N/A NO genesis --bootnode "/ip4/127.0.0.1/tcp/30301/p2p/16Uiu2HAmBW3zAvTEHGj5DDygJ5AzuvaRdY5wtSLNmkvXfaQensBu" NO
--burn-contract The burn contract blocks and addresses (format: [block]:[address]) []string{} NO genesis --burn-contract "0:0x0000000000000000000000000000000000000000" NO
--consensus The consensus protocol to be used "polybft" NO genesis --consensus polybft NO
--dir Represents the file path for the genesis data "./genesis.json" NO genesis --dir "/data/genesis.json" NO
--epoch-reward Reward size for block sealing 1 NO genesis --epoch-reward "10" NO
--epoch-size The epoch size for the chain 100000 NO genesis --epoch-size "10" NO
--name The name for the chain "polygon-edge" NO genesis --name "test-chain" NO
--premine The premined accounts and balances []string{} NO genesis --premine 0x85da99c8a7c2c95964c8efd687e95e632fc533d6:1000000000000000000000 NO
--sprint-size The number of blocks included into a sprint 5 NO genesis --sprint-size "2" NO
--trieroot Trie root from the corresponding triedb "" NO genesis --trieroot "0xabc123" NO
--validators Initial validator addresses for the chain []string{} YES genesis --validators "0x9c106ada8a2a36a9de8d67b347c07156033882e0" NO
--validators-path Root path containing polybft validators' secrets "./" NO genesis --validators-path "/data/validators" NO
--validators-secret Validators secrets []string{} NO genesis --validators-secret "0x0101010101010101010101010101010101010101010101010101010101010101" NO

:::info Mutually Exclusive Paramaters

  • --validators: Validators defined by the user (format: <P2P multi address>:<public ECDSA address>:<public BLS key>). If this flag is set, the entire multi address must be specified. If not set, validators configuration will be read from --validators-path.
  • --validators-path: Root path containing polybft validators' secrets. If --validators flag is not specified, validators' configuration will be read from this path.
  • --validators-prefix: Folder prefix names for polybft validators' secrets. If --validators flag is set, this prefix will be used for folder names.

:::

Server Configuration Parameter Reference

Parameter Description Default Value Mandatory Example Reconfigurable at Runtime
--grpc-address string The address of the GRPC interface. "127.0.0.1:9632" NO Command: server Flag: --grpc-address “0.0.0.0:10000” NO
--jsonrpc string The address of the JSON-RPC interface. "0.0.0.0:8545" NO Command: server Flag: --jsonrpc “0.0.0.0:10002” NO
--log-level string The log level for the console output. “INFO” NO Command: server Flag: --log-level “DEBUG” NO
--chain string The genesis file used for starting the chain. The genesis file is generated by running the genesis CLI command. "./genesis.json" NO Command: server Flag: --chain “genesis.json” NO
--config string The path to the CLI config. Supported extensions are: .json, .hcl, .yaml and .yml. If this flag is set, other flags will be overridden. If some value that will be overridden is not specified in a config file, default value for that parameter is used. “” NO Command: server Flag: --config “config.json” NO
--data-dir string The data directory used for storing Furtheon client data. “” YES Command: server Flag:--data-dir “./test-chain-1” NO
--libp2p string The address and port for the libp2p service. “127.0.0.1:1478” NO Command: server Flag: --libp2p “0.0.0.0:30301” NO
--prometheus string The address and port for the prometheus instrumentation service (address:port). If only port is defined (:port) it will bind to 0.0.0.0:port. “” NO Command: server Flag: --prometheus “0.0.0.0:5001” NO
--nat string The external IP address without port, as can be seen by peers. The string specidied can be in IPv4 dotted decimal ("192.0.2.1"), IPv6 ("2001:db8::68"), or IPv4-mapped IPv6 ("::ffff:192.0.2.1") form. “” NO Command: server Flag:--nat "192.0.2.1" NO
--dns string The host DNS address which can be used by a remote peer for connection. “” NO Command: server Flag: --dns "www.example.com" NO
--block-gas-target string The target block gas limit for the chain. If omitted, the value of the parent block is used which will be the value set by the --block-gas-limit flag of the genesis command. If this flag is set, the block fill take block gas limit of the parent block and increment it by small delta (parentGasLimit /1024). If the block gas target is reached that the value of it will be set as a gas limit for the current block. 0x0 NO Command: server Flag: --block-gas-target “10000000” YES, this parameter can be changed by stopping the node and then starting it again with the server command and specifying --block-gas-target flag providing the new value e.g. --block-gas-target “60000000”
--secrets-config string The path to the SecretsManager config file. Used for Hashicorp Vault. If omitted, the local FS secrets manager is used. “” NO Command: server Flag: --secret-config “hashicorp.json” NO
--restore string The path to the archive blockchain data to restore on initialization. “” NO Command: server Flag: --restore NO
--seal The flag indicating that the client should seal blocks. TRUE NO Command: server Flag: --seal NO
--no-discover Prevent the client from discovering other peers. FALSE NO Command: server Flag: --no-discover NO
--max-peers int The client's max number of peers allowed. 40 NO Command: server Flag: --max-peers “70” NO
--max-inbound-peers int The client's max number of inbound peers allowed. 32 NO Command: server Flag:--max-inbound-peers “50” NO
--max-outbound-peers int The client's max number of outbound peers allowed. 8 NO Command: server Flag: --max-outbound-peers “20” NO
--price-limit uint The minimum gas price limit to enforce for acceptance into the pool. 0 NO Command: server Flag: --price-limit “1” YES, this parameter can be changed by stopping the node and then starting it again with the server command and specifying --price-limit flag providing the new value e.g. --price-limit “5”
--max-slots uint Maximum slots in the transaction pool. When the maximum capacity is reached, transaction is not stored in the pool. One transaction occupies txSize/32kB number of slots. If e.g. --max-slots is 5, and there are tx1 which has 2kB and tx2 which has 33kB, that means that 3 slots are occupied and there are 2 free slots left. This parameter refers to the enqueued and promoted transactions in the pool. 4096 NO Command: server Flag: --max-slots “100000” NO
--max-enqueued uint Maximum number of enqueued transactions in the pool per account. 128 NO Command: server Flag: --max-enqueued “200” NO
--access-control-allow-origins stringArray The CORS(cross origin resource sharing) header indicating whether any JSON-RPC response can be shared with the specified origin. []string{"*"} NO Command: server Flag: --access-control-allow-origins “https://foo.example” NO
--json-rpc-batch-request-limit uint Max length to be considered when handling json-rpc batch requests, value of 0 disables it. 20 NO Command: server Flag: --json-rpc-batch-request-limit NO
--json-rpc-block-range-limit uint Max block range to be considered when executing json-rpc requests that consider fromBlock/toBlock values (e.g. eth_getLogs), value of 0 disables it. 1000 NO Command: server Flag: --json-rpc-block-range-limit “2000” NO
--log-to string Write all logs to the file at specified location instead of writing them to console. “” NO Command: server Flag: --log-to “edge-log.log” NO
--relayer Start the state sync relayer service. FALSE NO Command: server Flag: --relayer NO
--num-block-confirmations uint Minimal number of child blocks required for the parent block to be considered final. This parameter is used by the event Tracker when reading logs from the parent chain. 64 NO Command: server Flag: --num-block-confirmations “2” NO
--concurrent-requests-debug uint Maximal number of concurrent requests for debug endpoints. 32 NO server --concurrent-requests-debug "50" NO
--websocket-read-limit uint Maximum size in bytes for a message read from the peer by websocket. 8192 NO server --websocket-read-limit "16384" NO
--relayer-poll-interval duration Interval (number of seconds) at which relayer's tracker polls for latest block at childchain. 1s NO server --relayer-poll-interval "2s" NO
--metrics-interval duration The interval (in seconds) at which special metrics are generated. A value of zero means the metrics are disabled. 8s NO server --metrics-interval "10s" NO

:::info Mutually Exclusive Paramaters

  • --max-inbound-peers: The client's maximum number of inbound peers allowed. Default value is 32.
  • --max-outbound-peers: The client's maximum number of outbound peers allowed. Default value is 8.

:::