Skip to content

Commit

Permalink
Add config samples from TM v26, v27, v28, v29. (#8384) (#8387)
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Apr 21, 2022
1 parent 2a91d21 commit 9195a00
Show file tree
Hide file tree
Showing 10 changed files with 1,130 additions and 0 deletions.
52 changes: 52 additions & 0 deletions scripts/confix/testdata/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Test data for `confix` and `condiff`

The files in this directory are stock Tendermint configuration files generated
by the last point release of each version series from v0.26 to present, along
with diffs between consecutive versions.

## Config Samples

The files named `vXX-config.toml` were generated by checking out and building
the corresponding version of Tendermint v0.xx.y and initializing a new node in
an empty home directory. The resulting `config.toml` file was copied here.
The exact build instructions vary a bit, but a general repro looks like:

```shell
# This example uses v0.31, substitute the version of your choice.
# Note that the branch names and tags may differ.
# Versions prior to v0.26 may not build.
git checkout v0.31.9
git clean -fdx

# Versions prior to v0.32 do not have Go module files.
# Those that do may need some dependencies manually updated.
go mod init github.com/tendermint/tendermint
go mod tidy
go get golang.org/x/sys

# Once you sort out the dependencies, this should usually work.
make build

# Confirm you go the version you expected, and generate the file.
./build/tendermint --home=tmhome version
./build/tendermint --home=tmhome init

# Copy the file out.
cp ./tmhome/config/config.toml v31-config.toml
```

## Version Diffs

The files named `diff-XX-YY.txt` were generated by using the `condiff` tool on
the config samples for versions v0.XX and v0.YY:

```shell
go run ./scripts/confix/condiff -desnake vXX-config vYY-config.toml > diff-XX-YY.txt
```

The `baseline.txt` was computed in the same way, but using an empty starting
file so that we capture all the settings in the target:

```shell
go run ./scripts/confix/condiff -desnake /dev/null v26-config.toml > baseline.txt
```
73 changes: 73 additions & 0 deletions scripts/confix/testdata/baseline.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
+M abci
+M db-backend
+M db-dir
+M fast-sync
+M filter-peers
+M genesis-file
+M log-format
+M log-level
+M moniker
+M node-key-file
+M priv-validator-file
+M priv-validator-laddr
+M prof-laddr
+M proxy-app
+S consensus
+M consensus.wal-file
+M consensus.timeout-propose
+M consensus.timeout-propose-delta
+M consensus.timeout-prevote
+M consensus.timeout-prevote-delta
+M consensus.timeout-precommit
+M consensus.timeout-precommit-delta
+M consensus.timeout-commit
+M consensus.skip-timeout-commit
+M consensus.create-empty-blocks
+M consensus.create-empty-blocks-interval
+M consensus.peer-gossip-sleep-duration
+M consensus.peer-query-maj23-sleep-duration
+M consensus.blocktime-iota
+S instrumentation
+M instrumentation.prometheus
+M instrumentation.prometheus-listen-addr
+M instrumentation.max-open-connections
+M instrumentation.namespace
+S mempool
+M mempool.recheck
+M mempool.broadcast
+M mempool.wal-dir
+M mempool.size
+M mempool.cache-size
+S p2p
+M p2p.laddr
+M p2p.external-address
+M p2p.seeds
+M p2p.persistent-peers
+M p2p.upnp
+M p2p.addr-book-file
+M p2p.addr-book-strict
+M p2p.max-num-inbound-peers
+M p2p.max-num-outbound-peers
+M p2p.flush-throttle-timeout
+M p2p.max-packet-msg-payload-size
+M p2p.send-rate
+M p2p.recv-rate
+M p2p.pex
+M p2p.seed-mode
+M p2p.private-peer-ids
+M p2p.allow-duplicate-ip
+M p2p.handshake-timeout
+M p2p.dial-timeout
+S rpc
+M rpc.laddr
+M rpc.cors-allowed-origins
+M rpc.cors-allowed-methods
+M rpc.cors-allowed-headers
+M rpc.grpc-laddr
+M rpc.grpc-max-open-connections
+M rpc.unsafe
+M rpc.max-open-connections
+S tx-index
+M tx-index.indexer
+M tx-index.index-tags
+M tx-index.index-all-tags
Empty file.
3 changes: 3 additions & 0 deletions scripts/confix/testdata/diff-27-28.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-M priv-validator-file
+M priv-validator-key-file
+M priv-validator-state-file
Empty file.
Empty file.
249 changes: 249 additions & 0 deletions scripts/confix/testdata/v26-config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
# 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:26658"

# A custom human readable name for this node
moniker = "localhost"

# 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 | cleveldb
db_backend = "leveldb"

# Database directory
db_dir = "data"

# Output level for logging, including package level options
log_level = "main:info,state:info,*:error"

# Output format: 'plain' (colored text) or 'json'
log_format = "plain"

##### additional base config options #####

# Path to the JSON file containing the initial validator set and other meta data
genesis_file = "config/genesis.json"

# Path to the JSON file containing the private key to use as a validator in the consensus protocol
priv_validator_file = "config/priv_validator.json"

# TCP or UNIX socket address for Tendermint to listen on for
# connections from an external PrivValidator process
priv_validator_laddr = ""

# Path to the JSON file containing the private key to use for node authentication in the p2p protocol
node_key_file = "config/node_key.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

##### 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:26657"

# A list of origins a cross-domain request can be executed from
# Default value '[]' disables cors support
# Use '["*"]' to allow any origin
cors_allowed_origins = "[]"

# A list of methods the client is allowed to use with cross-domain requests
cors_allowed_methods = "[HEAD GET POST]"

# A list of non simple headers the client is allowed to use with cross-domain requests
cors_allowed_headers = "[Origin Accept Content-Type X-Requested-With X-Server-Time]"

# TCP or UNIX socket address for the gRPC server to listen on
# NOTE: This server only supports /broadcast_tx_commit
grpc_laddr = ""

# Maximum number of simultaneous connections.
# Does not include RPC (HTTP&WebSocket) connections. See max_open_connections
# If you want to accept more significant number than the default, make sure
# you increase your OS limits.
# 0 - unlimited.
# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files}
# 1024 - 40 - 10 - 50 = 924 = ~900
grpc_max_open_connections = 900

# Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool
unsafe = false

# Maximum number of simultaneous connections (including WebSocket).
# Does not include gRPC connections. See grpc_max_open_connections
# If you want to accept more significant number than the default, make sure
# you increase your OS limits.
# 0 - unlimited.
# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files}
# 1024 - 40 - 10 - 50 = 924 = ~900
max_open_connections = 900

##### peer to peer configuration options #####
[p2p]

# Address to listen for incoming connections
laddr = "tcp://0.0.0.0:26656"

# Address to advertise to peers for them to dial
# If empty, will use the same port as the laddr,
# and will introspect on the listener or use UPnP
# to figure out the address.
external_address = ""

# Comma separated list of seed nodes to connect to
seeds = ""

# Comma separated list of nodes to keep persistent connections to
persistent_peers = ""

# UPNP port forwarding
upnp = false

# Path to address book
addr_book_file = "config/addrbook.json"

# Set true for strict address routability rules
# Set false for private or local networks
addr_book_strict = true

# Maximum number of inbound peers
max_num_inbound_peers = 40

# Maximum number of outbound peers to connect to, excluding persistent peers
max_num_outbound_peers = 10

# Time to wait before flushing messages out on the connection
flush_throttle_timeout = "100ms"

# Maximum size of a message packet payload, in bytes
max_packet_msg_payload_size = 1024

# Rate at which packets can be sent, in bytes/second
send_rate = 5120000

# Rate at which packets can be received, in bytes/second
recv_rate = 5120000

# Set true to enable the peer-exchange reactor
pex = true

# Seed mode, in which node constantly crawls the network and looks for
# peers. If another node asks it for addresses, it responds and disconnects.
#
# Does not work if the peer-exchange reactor is disabled.
seed_mode = false

# Comma separated list of peer IDs to keep private (will not be gossiped to other peers)
private_peer_ids = ""

# Toggle to disable guard against peers connecting from the same ip.
allow_duplicate_ip = true

# Peer connection configuration.
handshake_timeout = "20s"
dial_timeout = "3s"

##### mempool configuration options #####
[mempool]

recheck = true
broadcast = true
wal_dir = ""

# size of the mempool
size = 5000

# size of the cache (used to filter transactions we saw earlier)
cache_size = 10000

##### consensus configuration options #####
[consensus]

wal_file = "data/cs.wal/wal"

timeout_propose = "3s"
timeout_propose_delta = "500ms"
timeout_prevote = "1s"
timeout_prevote_delta = "500ms"
timeout_precommit = "1s"
timeout_precommit_delta = "500ms"
timeout_commit = "1s"

# Make progress as soon as we have all the precommits (as if TimeoutCommit = 0)
skip_timeout_commit = false

# EmptyBlocks mode and possible interval between empty blocks
create_empty_blocks = true
create_empty_blocks_interval = "0s"

# Reactor sleep duration parameters
peer_gossip_sleep_duration = "100ms"
peer_query_maj23_sleep_duration = "2s"

# Block time parameters. Corresponds to the minimum time increment between consecutive blocks.
blocktime_iota = "1s"

##### 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 = "kv"

# Comma-separated list of tags to index (by default the only tag is "tx.hash")
#
# You can also index transactions by height by adding "tx.height" tag here.
#
# 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 = ""

# When set to true, tells indexer to index all tags (predefined tags:
# "tx.hash", "tx.height" and all tags from DeliverTx responses).
#
# 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 = false

##### instrumentation configuration options #####
[instrumentation]

# When true, Prometheus metrics are served under /metrics on
# PrometheusListenAddr.
# Check out the documentation for the list of available metrics.
prometheus = false

# Address to listen for Prometheus collector(s) connections
prometheus_listen_addr = ":26660"

# Maximum number of simultaneous connections.
# If you want to accept more significant number than the default, make sure
# you increase your OS limits.
# 0 - unlimited.
max_open_connections = 3

# Instrumentation namespace
namespace = "tendermint"
Loading

0 comments on commit 9195a00

Please sign in to comment.