Starting the server with various configuration options can be done using a configuration file instead of using just flags. The command used to start the server with a config file: polygon-edge server --config <config_file_name>
Export config file with default configuration
The configuration with default settings for the Credit Smart Chain server can be exported into a config file in either yaml
or json
file format. This file can be used as a template for running the server using a configuration file.
To generate the config file in yaml
format:
Copy polygon-edge server export --type yaml
or just
Copy polygon-edge server export
the config file named default-config.yaml
will be created in the same directory that this command has been run from.
File example:
Copy chain_config: ./genesis.json
secrets_config: ""
data_dir: ""
block_gas_target: "0x0"
grpc_addr: ""
jsonrpc_addr: ""
telemetry:
prometheus_addr: ""
network:
no_discover: false
libp2p_addr: 127.0.0.1:1478
nat_addr: ""
dns_addr: ""
max_peers: -1
max_outbound_peers: -1
max_inbound_peers: -1
seal: true
tx_pool:
price_limit: 0
max_slots: 4096
log_level: INFO
restore_file: ""
block_time_s: 2
headers:
access_control_allow_origins:
- '*'
log_to: ""
To generate the config file in json
format:
Copy polygon-edge server export --type json
the config file named default-config.json
will be created in the same directory that this command has been run from.
File example:
Copy {
"chain_config": "./genesis.json",
"secrets_config": "",
"data_dir": "",
"block_gas_target": "0x0",
"grpc_addr": "",
"jsonrpc_addr": "",
"telemetry": {
"prometheus_addr": ""
},
"network": {
"no_discover": false,
"libp2p_addr": "127.0.0.1:1478",
"nat_addr": "",
"dns_addr": "",
"max_peers": -1,
"max_outbound_peers": -1,
"max_inbound_peers": -1
},
"seal": true,
"tx_pool": {
"price_limit": 0,
"max_slots": 4096
},
"log_level": "INFO",
"restore_file": "",
"block_time_s": 2,
"headers": {
"access_control_allow_origins": [
"*"
]
},
"log_to": ""
}
Checkout CLI Commands section to get information on how to use these parameters.
The following is the sample format for the configuration file. It's written in TypeScript to express the properties types (string
, number
, boolean
), from it you could derive your configuration. It's worth mentioning that the PartialDeep
type from type-fest
is used to express that all properties are optional.
Copy import { PartialDeep } from 'type-fest';
type ServerConfig = PartialDeep<{
chain_config: string; // <genesis_file_path>
secrets_config: string; // <secrets_file_path>
data_dir: string; // <data_directory_path>
block_gas_target: string; // <block_gas_limit>
grpc_addr: string; // <grpc_listener_address>
jsonrpc_addr: string; // <json_rpc_listener_address>
telemetry: {
prometheus_addr: string; // <prometheus_listener_address>
};
network: {
no_discover: boolean; // <enable/disable_discovery>,
libp2p_addr: string; // <libp2p_server_address>,
nat_addr: string; // <nat_address>,
dns_addr: string; // <dns_address>,
max_peers: number; // <maximum_allowded_peers>,
max_inbound_peers: number; // <maximum_allowded_inbound_peers>,
max_outbound_peers: number; // <maximum_allowded_outbound_peers>
};
seal: boolean; // <enable/disable_block_sealing>
txpool: {
price_limit: number; // <minimum_gas_price_limit>
max_slots: number; // <maximum_txpool_slots>
};
log_level: 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'DPANIC' | 'PANIC' | 'FATAL'; // <log_level>
restore_file: string; // <restore_file_path>
block_time_s: number; // <block_time_seconds>
headers: Record<string, any>;
log_to: string; // <log_to>
}>