Comment on page
Server configuration file
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>
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:polygon-edge server export --type yaml
or just
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:
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: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:
{
"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": ""
}
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.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>
}>
Last modified 1mo ago