Skip to content
Snippets Groups Projects
server_config.toml 7.78 KiB
Newer Older
# Copyright 2015, 2016 Eris Industries (UK) Ltd.
# This file is part of Eris-RT
#
# Eris-RT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Eris-RT is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Eris-RT.  If not, see <http://www.gnu.org/licenses/>.

# This is a TOML configuration for Eris-DB chains
# ChainId is a human-readable name to identify the chain.
# This must correspond to the chain_id defined in the genesis file
# and the assertion here provides a safe-guard on misconfiguring chains.
assert_chain_id = "MyChainId"
# semantic major and minor version
major_version = 0
minor_version = 12
# genesis file, relative path is to eris-db working directory
genesis_file = "genesis.json"


###############################################################################
##
##  consensus
##
###############################################################################

  [chain.consensus]
  # consensus defines the module to use for consensus and
  # this will define the peer-to-peer consensus network;
  # accepted values are "noops", "tmsp", "tendermint"
  # version is the major and minor semantic version;
  # the version will be asserted on
  major_version = 0
  minor_version = 6
  relative_root = "tendermint"

###############################################################################
##
##  application manager
##
###############################################################################

  [chain.manager]
  # application manager name defines the module to use for handling
  # the transactions.  Supported names are `erismint`
  name = "erismint"
  # version is the major and minor semantic version;
  # the version will be asserted on
  major_version = 0
  minor_version = 12
  # relative path to application manager root folder
  relative_root = "erismint"
################################################################################
################################################################################
##
## Server configurations
##
################################################################################
################################################################################

  [servers.bind]
  address = ""
  port = 1337

  [servers.tls]
  tls = false
  cert_path = ""
  key_path = ""
  enable = false
  allow_origins = []
  allow_credentials = false
  allow_methods = []
  allow_headers = []
  expose_headers = []
  max_age = 0
  json_rpc_endpoint = "/rpc"

  [servers.websocket]
  endpoint = "/socketrpc"
  max_sessions = 50
  read_buffer_size = 4096
  write_buffer_size = 4096
  [servers.tendermint]
  # Multiple listeners can be separated with a comma
  rpc_local_address = "0.0.0.0:46657"
  endpoint = "/websocket"
  console_log_level = "info"
  file_log_level = "warn"
  log_file = ""
################################################################################
################################################################################
##
## Module configurations - dynamically loaded based on chain configuration
##
################################################################################
################################################################################


################################################################################
##
## Tendermint Socket Protocol (TMSP)
## TMSP expects a tendermint consensus process to run and connect to Eris-DB
##
################################################################################

[tmsp]
# listener address for accepting tendermint socket protocol connections
listener = "tcp://0.0.0.0:46658"
################################################################################
##
## Tendermint
## version 0.6.0
##
## in-process execution of Tendermint consensus engine
##
################################################################################

[tendermint]
# private validator file is used by tendermint to keep the status
# of the private validator, but also (currently) holds the private key
# for the private vaildator to sign with.  This private key needs to be moved
# out and directly managed by eris-keys
Benjamin Bollen's avatar
Benjamin Bollen committed
# This file needs to be in the root directory
private_validator_file = "priv_validator.json"

  # Tendermint requires additional configuration parameters.
  # Eris-DB's tendermint consensus module will load [tendermint.configuration]
  # as the configuration for Tendermint.
  # Eris-DB will respect the configurations set in this file where applicable,
  # but reserves the option to override or block conflicting settings.
  [tendermint.configuration]
  # moniker is the name of the node on the tendermint p2p network
  moniker = "anonymous_marmot"
  # seeds lists the peers tendermint can connect to join the network
  seeds = ""
  # fast_sync allows a tendermint node to catch up faster when joining
  # the network.
  # NOTE: Tendermint has reported potential issues with fast_sync enabled.
  # The recommended setting is for keeping it disabled.
  fast_sync = false
  # database backend to use for Tendermint. Supported `leveldb` and `memdb`.
  db_backend = "leveldb"
  # logging level. Suppored `debug`, `notice`, `info` [ben: incomplete, see Tendermint]
  log_level = "info"
  # node local address
  node_laddr = "0.0.0.0:46656"
  # rpc local address
  # NOTE: value is ignored when run in-process as RPC is
  # handled by [servers.tendermint]
  rpc_laddr = ""
  # proxy application address - used for tmsp connections,
  # and this port should not be exposed for in-process Tendermint
  proxy_app = "tcp://127.0.0.1:46658"

  # Extended Tendermint configuration settings
  # for reference to Tendermint see https://github.com/tendermint/tendermint/blob/master/config/tendermint/config.go

  # genesis_file = "./data/tendermint/genesis.json"
  # skip_upnp = false
  # addrbook_file = "./data/tendermint/addrbook.json"
  # priv_validator_file = "./data/tendermint/priv_validator.json"
  # db_dir = "./data/tendermint/data"
  # prof_laddr = ""
  # revision_file = "./data/tendermint/revision"
  # cswal = "./data/tendermint/data/cswal"
  # cswal_light = false

  # block_size = 10000
  # disable_data_hash = false
  # timeout_propose = 3000
  # timeout_propose_delta = 500
  # timeout_prevote = 1000
  # timeout_prevote_delta = 500
  # timeout_precommit = 1000
  # timeout_precommit_delta = 500
  # timeout_commit = 1000
  # mempool_recheck = true
  # mempool_recheck_empty = true
  # mempool_broadcast = true
		[tendermint.configuration.p2p]
		# Switch config keys
		dial_timeout_seconds = 3
		handshake_timeout_seconds = 20
		max_num_peers = 20
		authenticated_encryption = true

		# MConnection config keys
		send_rate = 512000
		recv_rate = 512000

		# Fuzz params
		fuzz_enable = false # use the fuzz wrapped conn
		fuzz_active = false # toggle fuzzing
		fuzz_mode = "drop"  # eg. drop, delay
		fuzz_max_delay_milliseconds = 3000
		fuzz_prob_drop_rw = 0.2
		fuzz_prob_drop_conn = 0.00
		fuzz_prob_sleep = 0.00

################################################################################
##
## Eris-Mint
## The original Ethereum virtual machine with IAVL merkle trees
## and tendermint/go-wire encoding
##
################################################################################

[erismint]
# Database backend to use for ErisMint state database.
# Supported `leveldb` and `memdb`.
db_backend = "leveldb"