From 69d8c2e554df7577c2e1e02724fb9214287a9d19 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Fri, 1 Dec 2017 22:35:15 -0600 Subject: [PATCH] fixes after my own review --- config/config.go | 2 +- config/toml.go | 25 ++++++- docs/specification/configuration.rst | 103 ++++++++++++++++----------- 3 files changed, 84 insertions(+), 46 deletions(-) diff --git a/config/config.go b/config/config.go index 1585fcd0e..25ccf0f57 100644 --- a/config/config.go +++ b/config/config.go @@ -386,7 +386,7 @@ func (cfg *ConsensusConfig) PeerQueryMaj23Sleep() time.Duration { // DefaultConsensusConfig returns a default configuration for the consensus service func DefaultConsensusConfig() *ConsensusConfig { return &ConsensusConfig{ - WalPath: filepath.Join(defaultDataDir, "cs.wal/wal"), + WalPath: filepath.Join(defaultDataDir, "cs.wal", "wal"), WalLight: false, TimeoutPropose: 3000, TimeoutProposeDelta: 500, diff --git a/config/toml.go b/config/toml.go index 56a5a1304..e7b00dd6c 100644 --- a/config/toml.go +++ b/config/toml.go @@ -100,9 +100,6 @@ prof_laddr = "{{ .BaseConfig.ProfListenAddress }}" # so the app can decide if we should keep the connection or not filter_peers = {{ .BaseConfig.FilterPeers }} -# What indexer to use for transactions -tx_index = "{{ .BaseConfig.TxIndex }}" - ##### advanced configuration options ##### ##### rpc server configuration options ##### @@ -185,6 +182,28 @@ create_empty_blocks_interval = {{ .Consensus.CreateEmptyBlocksInterval }} # Reactor sleep duration parameters are in milliseconds peer_gossip_sleep_duration = {{ .Consensus.PeerGossipSleepDuration }} peer_query_maj23_sleep_duration = {{ .Consensus.PeerQueryMaj23SleepDuration }} + +##### transactions indexer configuration options ##### +[tx_index] + +# What indexer to use for transactions +# +# Options: +# 1) "null" (default) +# 2) "kv" - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). +indexer = "{{ .TxIndex.Indexer }}" + +# Comma-separated list of tags to index (by default the only tag is tx hash) +# +# It's recommended to index only a subset of tags due to possible memory +# bloat. This is, of course, depends on the indexer's DB and the volume of +# transactions. +index_tags = "{{ .TxIndex.IndexTags }}" + +# When set to true, tells indexer to index all tags. Note this may be not +# desirable (see the comment above). IndexTags has a precedence over +# IndexAllTags (i.e. when given both, IndexTags will be indexed). +index_all_tags = {{ .TxIndex.IndexAllTags }} ` /****** these are for test settings ***********/ diff --git a/docs/specification/configuration.rst b/docs/specification/configuration.rst index 62e35738d..37359885c 100644 --- a/docs/specification/configuration.rst +++ b/docs/specification/configuration.rst @@ -12,120 +12,117 @@ Config options The default configuration file create by ``tendermint init`` has all the parameters set with their default values. It will look something -like the file below, however, double check by inspecting the +like the file below, however, double check by inspecting the ``config.toml`` created with your version of ``tendermint`` installed: :: # This is a TOML config file. # For more information, see https://github.com/toml-lang/toml - + ##### main base config options ##### - + # TCP or UNIX socket address of the ABCI application, # or the name of an ABCI application compiled in with the Tendermint binary proxy_app = "tcp://127.0.0.1:46658" - + # A custom human readable name for this node moniker = "anonymous" - + # If this node is many blocks behind the tip of the chain, FastSync # allows them to catchup quickly by downloading blocks in parallel # and verifying their commits fast_sync = true - + # Database backend: leveldb | memdb db_backend = "leveldb" - + # Database directory db_path = "data" - + # Output level for logging log_level = "state:info,*:error" - + ##### additional base config options ##### - + # The ID of the chain to join (should be signed with every transaction and vote) chain_id = "" - + # Path to the JSON file containing the initial validator set and other meta data genesis_file = "genesis.json" - + # Path to the JSON file containing the private key to use as a validator in the consensus protocol priv_validator_file = "priv_validator.json" - + # Mechanism to connect to the ABCI application: socket | grpc abci = "socket" - + # TCP or UNIX socket address for the profiling server to listen on prof_laddr = "" - + # If true, query the ABCI app on connecting to a new peer # so the app can decide if we should keep the connection or not filter_peers = false - - # What indexer to use for transactions - tx_index = "kv" - + ##### advanced configuration options ##### - + ##### rpc server configuration options ##### [rpc] - + # TCP or UNIX socket address for the RPC server to listen on laddr = "tcp://0.0.0.0:46657" - + # TCP or UNIX socket address for the gRPC server to listen on # NOTE: This server only supports /broadcast_tx_commit grpc_laddr = "" - + # Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool unsafe = false - + ##### peer to peer configuration options ##### [p2p] - + # Address to listen for incoming connections laddr = "tcp://0.0.0.0:46656" - + # Comma separated list of seed nodes to connect to seeds = "" - + # Path to address book addr_book_file = "addrbook.json" - + # Set true for strict address routability rules addr_book_strict = true - + # Time to wait before flushing messages out on the connection, in ms flush_throttle_timeout = 100 - + # Maximum number of peers to connect to max_num_peers = 50 - + # Maximum size of a message packet payload, in bytes max_msg_packet_payload_size = 1024 - + # Rate at which packets can be sent, in bytes/second send_rate = 512000 - + # Rate at which packets can be received, in bytes/second recv_rate = 512000 - + ##### mempool configuration options ##### [mempool] - + recheck = true recheck_empty = true broadcast = true wal_dir = "data/mempool.wal" - + ##### consensus configuration options ##### [consensus] - + wal_file = "data/cs.wal/wal" wal_light = false - + # All timeouts are in milliseconds timeout_propose = 3000 timeout_propose_delta = 500 @@ -134,18 +131,40 @@ like the file below, however, double check by inspecting the timeout_precommit = 1000 timeout_precommit_delta = 500 timeout_commit = 1000 - + # Make progress as soon as we have all the precommits (as if TimeoutCommit = 0) skip_timeout_commit = false - + # BlockSize max_block_size_txs = 10000 max_block_size_bytes = 1 - + # EmptyBlocks mode and possible interval between empty blocks in seconds create_empty_blocks = true create_empty_blocks_interval = 0 - + # Reactor sleep duration parameters are in milliseconds peer_gossip_sleep_duration = 100 peer_query_maj23_sleep_duration = 2000 + + ##### transactions indexer configuration options ##### + [tx_index] + + # What indexer to use for transactions + # + # Options: + # 1) "null" (default) + # 2) "kv" - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). + indexer = "{{ .TxIndex.Indexer }}" + + # Comma-separated list of tags to index (by default the only tag is tx hash) + # + # It's recommended to index only a subset of tags due to possible memory + # bloat. This is, of course, depends on the indexer's DB and the volume of + # transactions. + index_tags = "{{ .TxIndex.IndexTags }}" + + # When set to true, tells indexer to index all tags. Note this may be not + # desirable (see the comment above). IndexTags has a precedence over + # IndexAllTags (i.e. when given both, IndexTags will be indexed). + index_all_tags = {{ .TxIndex.IndexAllTags }}