diff --git a/scripts/simapp46/env b/scripts/simapp46/env index 1bdc14a2..13293e4f 100644 --- a/scripts/simapp46/env +++ b/scripts/simapp46/env @@ -1,5 +1,5 @@ # Choose from https://hub.docker.com/r/interchainio/simapp/tags REPOSITORY="interchainio/simapp" -VERSION="v0.46.0-rc2" +VERSION="v0.46.0-rc1" CONTAINER_NAME="simapp" CONTAINER_NAME_SLOW="simapp-slow" diff --git a/scripts/simapp46/generate_template.sh b/scripts/simapp46/generate_template.sh index faa6908c..b5151f57 100755 --- a/scripts/simapp46/generate_template.sh +++ b/scripts/simapp46/generate_template.sh @@ -55,14 +55,14 @@ function inline_jq() { # Custom settings in config.toml "$gnused" -i \ - -e 's/^cors_allowed_origins =.*$/cors_allowed_origins = ["*"]/' \ - -e 's/^timeout_propose =.*$/timeout_propose = "300ms"/' \ - -e 's/^timeout_propose_delta =.*$/timeout_propose_delta = "100ms"/' \ - -e 's/^timeout_prevote =.*$/timeout_prevote = "300ms"/' \ - -e 's/^timeout_prevote_delta =.*$/timeout_prevote_delta = "100ms"/' \ - -e 's/^timeout_precommit =.*$/timeout_precommit = "300ms"/' \ - -e 's/^timeout_precommit_delta =.*$/timeout_precommit_delta = "100ms"/' \ - -e 's/^timeout_commit =.*$/timeout_commit = "1s"/' \ + -e 's/^cors-allowed-origins =.*$/cors-allowed-origins = ["*"]/' \ + -e 's/^timeout-propose =.*$/timeout-propose = "300ms"/' \ + -e 's/^timeout-propose-delta =.*$/timeout-propose-delta = "100ms"/' \ + -e 's/^timeout-prevote =.*$/timeout-prevote = "300ms"/' \ + -e 's/^timeout-prevote-delta =.*$/timeout-prevote-delta = "100ms"/' \ + -e 's/^timeout-precommit =.*$/timeout-precommit = "300ms"/' \ + -e 's/^timeout-precommit-delta =.*$/timeout-precommit-delta = "100ms"/' \ + -e 's/^timeout-commit =.*$/timeout-commit = "1s"/' \ "template/.simapp/config/config.toml" # Custom settings app.toml diff --git a/scripts/simapp46/template/.simapp/config/config.toml b/scripts/simapp46/template/.simapp/config/config.toml index f76fec17..3d93aee7 100644 --- a/scripts/simapp46/template/.simapp/config/config.toml +++ b/scripts/simapp46/template/.simapp/config/config.toml @@ -12,15 +12,22 @@ # 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" +proxy-app = "tcp://127.0.0.1:26658" # A custom human readable name for this node moniker = "simd-moniker" -# 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 +# Mode of Node: full | validator | seed +# * validator node +# - all reactors +# - with priv_validator_key.json, priv_validator_state.json +# * full node +# - all reactors +# - No priv_validator_key.json, priv_validator_state.json +# * seed node +# - only P2P, PEX Reactor +# - No priv_validator_key.json, priv_validator_state.json +mode = "validator" # Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb # * goleveldb (github.com/syndtr/goleveldb - most popular implementation) @@ -41,41 +48,58 @@ fast_sync = true # * badgerdb (uses github.com/dgraph-io/badger) # - EXPERIMENTAL # - use badgerdb build tag (go build -tags badgerdb) -db_backend = "goleveldb" +db-backend = "goleveldb" # Database directory -db_dir = "data" +db-dir = "data" # Output level for logging, including package level options -log_level = "info" +log-level = "info" # Output format: 'plain' (colored text) or 'json' -log_format = "plain" +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_key_file = "config/priv_validator_key.json" - -# Path to the JSON file containing the last sign state of a validator -priv_validator_state_file = "data/priv_validator_state.json" - -# TCP or UNIX socket address for Tendermint to listen on for -# connections from an external PrivValidator process -priv_validator_laddr = "" +genesis-file = "config/genesis.json" # 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" +node-key-file = "config/node_key.json" # Mechanism to connect to the ABCI application: socket | grpc abci = "socket" # 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 +filter-peers = false + + +####################################################### +### Priv Validator Configuration ### +####################################################### +[priv-validator] + +# Path to the JSON file containing the private key to use as a validator in the consensus protocol +key-file = "config/priv_validator_key.json" + +# Path to the JSON file containing the last sign state of a validator +state-file = "data/priv_validator_state.json" + +# TCP or UNIX socket address for Tendermint to listen on for +# connections from an external PrivValidator process +# when the listenAddr is prefixed with grpc instead of tcp it will use the gRPC Client +laddr = "" + +# Path to the client certificate generated while creating needed files for secure connection. +# If a remote validator address is provided but no certificate, the connection will be insecure +client-certificate-file = "" + +# Client key generated while creating certificates for secure connection +client-key-file = "" + +# Path to the Root Certificate Authority used to sign both client and server certificates +root-ca-file = "" ####################################################################### @@ -93,54 +117,56 @@ laddr = "tcp://127.0.0.1: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 = ["*"] +cors-allowed-origins = ["*"] # A list of methods the client is allowed to use with cross-domain requests -cors_allowed_methods = ["HEAD", "GET", "POST", ] +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", ] +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 = "" +# Deprecated gRPC in the RPC layer of Tendermint will be deprecated in 0.36. +grpc-laddr = "" # Maximum number of simultaneous connections. -# Does not include RPC (HTTP&WebSocket) connections. See max_open_connections +# Does not include RPC (HTTP&WebSocket) connections. See max-open-connections # If you want to accept a larger 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 +# Deprecated gRPC in the RPC layer of Tendermint will be deprecated in 0.36. +grpc-max-open-connections = 900 -# Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool +# 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 +# Does not include gRPC connections. See grpc-max-open-connections # If you want to accept a larger 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 +max-open-connections = 900 # Maximum number of unique clientIDs that can /subscribe # If you're using /broadcast_tx_commit, set to the estimated maximum number # of broadcast_tx_commit calls per block. -max_subscription_clients = 100 +max-subscription-clients = 100 # Maximum number of unique queries a given client can /subscribe to # If you're using GRPC (or Local RPC client) and /broadcast_tx_commit, set to # the estimated # maximum number of broadcast_tx_commit calls per block. -max_subscriptions_per_client = 5 +max-subscriptions-per-client = 5 # Experimental parameter to specify the maximum number of events a node will # buffer, per subscription, before returning an error and closing the # subscription. Must be set to at least 100, but higher values will accommodate # higher event throughput rates (and will use more memory). -experimental_subscription_buffer_size = 200 +experimental-subscription-buffer-size = 200 # Experimental parameter to specify the maximum number of RPC responses that # can be buffered per WebSocket client. If clients cannot read from the @@ -148,11 +174,11 @@ experimental_subscription_buffer_size = 200 # parameter may reduce the chances of them being disconnected (but will cause # the node to use more memory). # -# Must be at least the same as "experimental_subscription_buffer_size", +# Must be at least the same as "experimental-subscription-buffer-size", # otherwise connections could be dropped unnecessarily. This value should -# ideally be somewhat higher than "experimental_subscription_buffer_size" to +# ideally be somewhat higher than "experimental-subscription-buffer-size" to # accommodate non-subscription-related RPC responses. -experimental_websocket_write_buffer_size = 200 +experimental-websocket-write-buffer-size = 200 # If a WebSocket client cannot read fast enough, at present we may # silently drop events instead of generating an error or disconnecting the @@ -160,44 +186,50 @@ experimental_websocket_write_buffer_size = 200 # # Enabling this experimental parameter will cause the WebSocket connection to # be closed instead if it cannot read fast enough, allowing for greater -# predictability in subscription behaviour. -experimental_close_on_slow_client = false +# predictability in subscription behavior. +experimental-close-on-slow-client = false # How long to wait for a tx to be committed during /broadcast_tx_commit. # WARNING: Using a value larger than 10s will result in increasing the # global HTTP write timeout, which applies to all connections and endpoints. # See https://github.com/tendermint/tendermint/issues/3435 -timeout_broadcast_tx_commit = "10s" +timeout-broadcast-tx-commit = "10s" # Maximum size of request body, in bytes -max_body_bytes = 1000000 +max-body-bytes = 1000000 # Maximum size of request header, in bytes -max_header_bytes = 1048576 +max-header-bytes = 1048576 # The path to a file containing certificate that is used to create the HTTPS server. # Might be either absolute path or path related to Tendermint's config directory. # If the certificate is signed by a certificate authority, # the certFile should be the concatenation of the server's certificate, any intermediates, # and the CA's certificate. -# NOTE: both tls_cert_file and tls_key_file must be present for Tendermint to create HTTPS server. +# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. # Otherwise, HTTP server is run. -tls_cert_file = "" +tls-cert-file = "" # The path to a file containing matching private key that is used to create the HTTPS server. # Might be either absolute path or path related to Tendermint's config directory. # NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. # Otherwise, HTTP server is run. -tls_key_file = "" +tls-key-file = "" # pprof listen address (https://golang.org/pkg/net/http/pprof) -pprof_laddr = "localhost:6060" +pprof-laddr = "localhost:6060" ####################################################### ### P2P Configuration Options ### ####################################################### [p2p] +# Enable the legacy p2p layer. +use-legacy = false + +# Select the p2p internal queue +queue-type = "priority" + # Address to listen for incoming connections laddr = "tcp://0.0.0.0:26656" @@ -206,66 +238,95 @@ laddr = "tcp://0.0.0.0:26656" # and will introspect on the listener or use UPnP # to figure out the address. ip and port are required # example: 159.89.10.97:26656 -external_address = "" +external-address = "" # Comma separated list of seed nodes to connect to +# We only use these if we can’t connect to peers in the addrbook +# NOTE: not used by the new PEX reactor. Please use BootstrapPeers instead. +# TODO: Remove once p2p refactor is complete +# ref: https:#github.com/tendermint/tendermint/issues/5670 seeds = "" +# Comma separated list of peers to be added to the peer store +# on startup. Either BootstrapPeers or PersistentPeers are +# needed for peer discovery +bootstrap-peers = "" + # Comma separated list of nodes to keep persistent connections to -persistent_peers = "" +persistent-peers = "" # UPNP port forwarding upnp = false # Path to address book -addr_book_file = "config/addrbook.json" +# TODO: Remove once p2p refactor is complete in favor of peer store. +addr-book-file = "config/addrbook.json" # Set true for strict address routability rules # Set false for private or local networks -addr_book_strict = true +addr-book-strict = true # Maximum number of inbound peers -max_num_inbound_peers = 40 +# +# TODO: Remove once p2p refactor is complete in favor of MaxConnections. +# ref: https://github.com/tendermint/tendermint/issues/5670 +max-num-inbound-peers = 40 # Maximum number of outbound peers to connect to, excluding persistent peers -max_num_outbound_peers = 10 +# +# TODO: Remove once p2p refactor is complete in favor of MaxConnections. +# ref: https://github.com/tendermint/tendermint/issues/5670 +max-num-outbound-peers = 10 + +# Maximum number of connections (inbound and outbound). +max-connections = 64 + +# Rate limits the number of incoming connection attempts per IP address. +max-incoming-connection-attempts = 100 # List of node IDs, to which a connection will be (re)established ignoring any existing limits -unconditional_peer_ids = "" +# TODO: Remove once p2p refactor is complete. +# ref: https://github.com/tendermint/tendermint/issues/5670 +unconditional-peer-ids = "" # Maximum pause when redialing a persistent peer (if zero, exponential backoff is used) -persistent_peers_max_dial_period = "0s" +# TODO: Remove once p2p refactor is complete +# ref: https:#github.com/tendermint/tendermint/issues/5670 +persistent-peers-max-dial-period = "0s" # Time to wait before flushing messages out on the connection -flush_throttle_timeout = "100ms" +# TODO: Remove once p2p refactor is complete +# ref: https:#github.com/tendermint/tendermint/issues/5670 +flush-throttle-timeout = "100ms" # Maximum size of a message packet payload, in bytes -max_packet_msg_payload_size = 1024 +# TODO: Remove once p2p refactor is complete +# ref: https:#github.com/tendermint/tendermint/issues/5670 +max-packet-msg-payload-size = 1400 # Rate at which packets can be sent, in bytes/second -send_rate = 5120000 +# TODO: Remove once p2p refactor is complete +# ref: https:#github.com/tendermint/tendermint/issues/5670 +send-rate = 5120000 # Rate at which packets can be received, in bytes/second -recv_rate = 5120000 +# TODO: Remove once p2p refactor is complete +# ref: https:#github.com/tendermint/tendermint/issues/5670 +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 = "" +# Warning: IPs will be exposed at /net_info, for more information https://github.com/tendermint/tendermint/issues/3055 +private-peer-ids = "" # Toggle to disable guard against peers connecting from the same ip. -allow_duplicate_ip = false +allow-duplicate-ip = false # Peer connection configuration. -handshake_timeout = "20s" -dial_timeout = "3s" +handshake-timeout = "20s" +dial-timeout = "3s" ####################################################### ### Mempool Configuration Option ### @@ -273,27 +334,23 @@ dial_timeout = "3s" [mempool] # Mempool version to use: -# 1) "v0" - (default) FIFO mempool. -# 2) "v1" - prioritized mempool. -# WARNING: There's a known memory leak with the prioritized mempool -# that the team are working on. Read more here: -# https://github.com/tendermint/tendermint/issues/8775 -version = "v0" +# 1) "v0" - The legacy non-prioritized mempool reactor. +# 2) "v1" (default) - The prioritized mempool reactor. +version = "v1" recheck = true broadcast = true -wal_dir = "" # Maximum number of transactions in the mempool size = 5000 # Limit the total size of all txs in the mempool. # This only accounts for raw transactions (e.g. given 1MB transactions and -# max_txs_bytes=5MB, mempool will only accept 5 transactions). -max_txs_bytes = 1073741824 +# max-txs-bytes=5MB, mempool will only accept 5 transactions). +max-txs-bytes = 1073741824 # Size of the cache (used to filter transactions we saw earlier) in transactions -cache_size = 10000 +cache-size = 10000 # Do not remove invalid transactions from the cache (default: false) # Set to true if it's not possible for any invalid transaction to become valid @@ -301,13 +358,13 @@ cache_size = 10000 keep-invalid-txs-in-cache = false # Maximum size of a single transaction. -# NOTE: the max size of a tx transmitted over the network is {max_tx_bytes}. -max_tx_bytes = 1048576 +# NOTE: the max size of a tx transmitted over the network is {max-tx-bytes}. +max-tx-bytes = 1048576 # Maximum size of a batch of transactions to send to a peer # Including space needed by encoding (one varint per transaction). # XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 -max_batch_bytes = 0 +max-batch-bytes = 0 # ttl-duration, if non-zero, defines the maximum amount of time a transaction # can exist for in the mempool. @@ -336,40 +393,52 @@ ttl-num-blocks = 0 # starting from the height of the snapshot. enable = false -# RPC servers (comma-separated) for light client verification of the synced state machine and -# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding -# header hash obtained from a trusted source, and a period during which validators can be trusted. -# -# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2 -# weeks) during which they can be financially punished (slashed) for misbehavior. -rpc_servers = "" -trust_height = 0 -trust_hash = "" -trust_period = "168h0m0s" +# State sync uses light client verification to verify state. This can be done either through the +# P2P layer or RPC layer. Set this to true to use the P2P layer. If false (default), RPC layer +# will be used. +use-p2p = false + +# If using RPC, at least two addresses need to be provided. They should be compatible with net.Dial, +# for example: "host.example.com:2125" +rpc-servers = "" + +# The hash and height of a trusted block. Must be within the trust-period. +trust-height = 0 +trust-hash = "" + +# The trust period should be set so that Tendermint can detect and gossip misbehavior before +# it is considered expired. For chains based on the Cosmos SDK, one day less than the unbonding +# period should suffice. +trust-period = "168h0m0s" # Time to spend discovering snapshots before initiating a restore. -discovery_time = "15s" +discovery-time = "15s" -# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp). -# Will create a new, randomly named directory within, and remove it when done. -temp_dir = "" +# Temporary directory for state sync snapshot chunks, defaults to os.TempDir(). +# The synchronizer will create a new, randomly named directory within this directory +# and remove it when the sync is complete. +temp-dir = "" # The timeout duration before re-requesting a chunk, possibly from a different -# peer (default: 1 minute). -chunk_request_timeout = "10s" +# peer (default: 15 seconds). +chunk-request-timeout = "15s" -# The number of concurrent chunk fetchers to run (default: 1). -chunk_fetchers = "4" +# The number of concurrent chunk and block fetchers to run (default: 4). +fetchers = "4" ####################################################### -### Fast Sync Configuration Connections ### +### Block Sync Configuration Connections ### ####################################################### -[fastsync] +[blocksync] -# Fast Sync version to use: -# 1) "v0" (default) - the legacy fast sync implementation -# 2) "v1" - refactor of v0 version for better testability -# 2) "v2" - complete redesign of v0, optimized for testability & readability +# If this node is many blocks behind the tip of the chain, BlockSync +# allows them to catchup quickly by downloading blocks in parallel +# and verifying their commits +enable = true + +# Block Sync version to use: +# 1) "v0" (default) - the standard Block Sync implementation +# 2) "v2" - DEPRECATED, please use v0 version = "v0" ####################################################### @@ -377,48 +446,49 @@ version = "v0" ####################################################### [consensus] -wal_file = "data/cs.wal/wal" +wal-file = "data/cs.wal/wal" # How long we wait for a proposal block before prevoting nil -timeout_propose = "300ms" -# How much timeout_propose increases with each round -timeout_propose_delta = "100ms" +timeout-propose = "300ms" +# How much timeout-propose increases with each round +timeout-propose-delta = "100ms" # How long we wait after receiving +2/3 prevotes for “anything” (ie. not a single block or nil) -timeout_prevote = "300ms" -# How much the timeout_prevote increases with each round -timeout_prevote_delta = "100ms" +timeout-prevote = "300ms" +# How much the timeout-prevote increases with each round +timeout-prevote-delta = "100ms" # How long we wait after receiving +2/3 precommits for “anything” (ie. not a single block or nil) -timeout_precommit = "300ms" -# How much the timeout_precommit increases with each round -timeout_precommit_delta = "100ms" +timeout-precommit = "300ms" +# How much the timeout-precommit increases with each round +timeout-precommit-delta = "100ms" # How long we wait after committing a block, before starting on the new # height (this gives us a chance to receive some more precommits, even # though we already have +2/3). -timeout_commit = "1s" +timeout-commit = "1s" # How many blocks to look back to check existence of the node's consensus votes before joining consensus # When non-zero, the node will panic upon restart -# if the same consensus key was used to sign {double_sign_check_height} last blocks. +# if the same consensus key was used to sign {double-sign-check-height} last blocks. # So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic. -double_sign_check_height = 0 +double-sign-check-height = 0 # Make progress as soon as we have all the precommits (as if TimeoutCommit = 0) -skip_timeout_commit = false +skip-timeout-commit = false # EmptyBlocks mode and possible interval between empty blocks -create_empty_blocks = true -create_empty_blocks_interval = "0s" +create-empty-blocks = true +create-empty-blocks-interval = "0s" # Reactor sleep duration parameters -peer_gossip_sleep_duration = "100ms" -peer_query_maj23_sleep_duration = "2s" +peer-gossip-sleep-duration = "100ms" +peer-query-maj23-sleep-duration = "2s" ####################################################### ### Transaction Indexer Configuration Options ### ####################################################### -[tx_index] +[tx-index] -# What indexer to use for transactions +# The backend database list to back the indexer. +# If list contains "null" or "", meaning no indexer service will be used. # # The application will set which txs to index. In some cases a node operator will be able # to decide which txs to index based on configuration set in the application. @@ -426,10 +496,9 @@ peer_query_maj23_sleep_duration = "2s" # Options: # 1) "null" # 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). -# - When "kv" is chosen "tx.height" and "tx.hash" will always be indexed. # 3) "psql" - the indexer services backed by PostgreSQL. # When "kv" or "psql" is chosen "tx.height" and "tx.hash" will always be indexed. -indexer = "kv" +indexer = ["kv"] # The PostgreSQL connection configuration, the connection format: # postgresql://:@:/? @@ -446,13 +515,13 @@ psql-conn = "" prometheus = false # Address to listen for Prometheus collector(s) connections -prometheus_listen_addr = ":26660" +prometheus-listen-addr = ":26660" # Maximum number of simultaneous connections. # If you want to accept a larger number than the default, make sure # you increase your OS limits. # 0 - unlimited. -max_open_connections = 3 +max-open-connections = 3 # Instrumentation namespace namespace = "tendermint"