WoopChain Configuration

WoopChain Configuration.

WoopChain Server configuration file

Start the WoopChain server using a 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:

  
woop server --config < config_file_name>
  

Export config file with default configuration

The configuration with default settings for the WoopChain 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.

YAML
To generate the config file in yaml format:

  
woop server export --type yaml
  

Or

  
woop 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: ""
  

JSON
To generate the config file in json format:

  
woop 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": ""
}
  

Typescript schema

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>
}>
  

Top