Configuration

This page explains the possible ways to configure an Aergo node.

There are three common modes of operation for aergo server:

  • BP Node - Block provider node, which mines and propagates blocks
  • Full Node - Node to get and validate all blocks
  • Single Node - BP Node without peer, which uses to something like test.

We describe only single node configuration in this. More will updated for the BP Node and full node.

Single Aergo Server (default)

We will show default configuration file next. You can check the each fields’ meaning in here

# aergo TOML Configuration File (https://github.com/toml-lang/toml)
# base configurations
datadir = ".aergo/data"
enableprofile = false
profileport = 6060
enablerest = false
enabletestmode = false

[rpc]
netserviceaddr = "127.0.0.1"
netserviceport = 7845
nstls = false
nscert = ""
nskey = ""
nsallowcors = false

[rest]
restport = "8080"

[p2p]
# Set address and port to which the inbound peers connect, and don't set loopback address or private network unless used in local network 
netprotocoladdr = "0.0.0.0"
netprotocolport = 7846
# TLS and certificate is not applied in alpha release
nptls = false
npcert = ""
# Set file path of key file
npkey = ""
npaddpeers = [
]
npmaxpeers = "100"
nppeerpool = "100"

[blockchain]
# blockchain configurations
maxblocksize = 1048576

[mempool]
showmetrics = false
dumpfilepath = ".aergo/mempool.dump"

[consensus]
enablebp = true
enabledpos = false
blockinterval = 1
dposbps = 23
bpids = [
]

Testmode

To enable testmode, either pass the command line option --testmode to aergosvr or set enabletestmode = true in the configuration.

In testmode, all new accounts are assigned a high number of Aergo tokens by default, basically circumventing balance checks. This means you can send any transaction without first pre-funding hard-coded accounts using a genesis block.

Testmode MUST NOT be used in production.

Reference

Module Property name Meaning
(default) datadir data files' base path
enableprofile whether use profie
profileport profile port
enablerest whether use REST API
enabletestmode whether test mode
rpc netserviceaddr rpc hostname or address
netserviceport rpc port number
nstls whether applying tls to rpc
nscert certificate file path for rpc tls
nskey key file path for rpc tls
nsallowcors whether allows CORS
rest restport port number for REST API
p2p netprotocoladdr ip address for p2p
netprotocolport port number for p2pls
nptls whether applying tls to p2p
npcert certificate file path for p2p tls
npkey key file path for p2p tls
npaddpeers initial peer list on start-up
blockchain maxblocksize maximum block size
coinbaseaccount address where is send rewards for mining
mempool showmetrics whether if turn periodic log on
dumpfilepath file path for recording mempool at process termintation
verifiers number of concurrency for sign verifying
consensus enablebp whether this node is BP
enabledpos whether consensus is dPoS
blockinterval minging interval in seconds
dposbps the number of BPs
bpids BPs' id

Logging options

It is possible to customize the log output format of all Aergo CLI tools using a file called arglog.toml placed in the current working directory.

This file is specified here.

level = "info"  # default log level
formatter = "json"  # format: console, console_no_color, json
caller = true  # enabling source file and line printer
timefieldformat = "RFC3339"

[chain]
level = "info"  # optional, log level for 'chain' module

[dpos]
level = "info"

[p2p]
level = "info"

[consensus]
level = "info"

[mempool]
level = "info"

[contract]
level = "info"

[syncer]
level = "info"

[bp]
level = "info"