github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/docs/nodes/configuration.md (about) 1 --- 2 order: 3 3 --- 4 5 # Configuration 6 7 Tendermint Core can be configured via a TOML file in 8 `$TMHOME/config/config.toml`. Some of these parameters can be overridden by 9 command-line flags. For most users, the options in the `##### main base configuration options #####` are intended to be modified while config options 10 further below are intended for advance power users. 11 12 ## Options 13 14 The default configuration file create by `tendermint init` has all 15 the parameters set with their default values. It will look something 16 like the file below, however, double check by inspecting the 17 `config.toml` created with your version of `tendermint` installed: 18 19 ```toml 20 # This is a TOML config file. 21 # For more information, see https://github.com/toml-lang/toml 22 23 # NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or 24 # relative to the home directory (e.g. "data"). The home directory is 25 # "$HOME/.tendermint" by default, but could be changed via $TMHOME env variable 26 # or --home cmd flag. 27 28 ####################################################################### 29 ### Main Base Config Options ### 30 ####################################################################### 31 32 # TCP or UNIX socket address of the ABCI application, 33 # or the name of an ABCI application compiled in with the Tendermint binary 34 proxy-app = "tcp://127.0.0.1:26658" 35 36 # A custom human readable name for this node 37 moniker = "sidewinder" 38 39 # Mode of Node: full | validator | seed 40 # * validator node 41 # - all reactors 42 # - with priv_validator_key.json, priv_validator_state.json 43 # * full node 44 # - all reactors 45 # - No priv_validator_key.json, priv_validator_state.json 46 # * seed node 47 # - only P2P, PEX Reactor 48 # - No priv_validator_key.json, priv_validator_state.json 49 mode = "validator" 50 51 # Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb 52 # * goleveldb (github.com/syndtr/goleveldb - most popular implementation) 53 # - pure go 54 # - stable 55 # * cleveldb (uses levigo wrapper) 56 # - fast 57 # - requires gcc 58 # - use cleveldb build tag (go build -tags cleveldb) 59 # * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) 60 # - EXPERIMENTAL 61 # - may be faster is some use-cases (random reads - indexer) 62 # - use boltdb build tag (go build -tags boltdb) 63 # * rocksdb (uses github.com/tecbot/gorocksdb) 64 # - EXPERIMENTAL 65 # - requires gcc 66 # - use rocksdb build tag (go build -tags rocksdb) 67 # * badgerdb (uses github.com/dgraph-io/badger) 68 # - EXPERIMENTAL 69 # - use badgerdb build tag (go build -tags badgerdb) 70 db-backend = "goleveldb" 71 72 # Database directory 73 db-dir = "data" 74 75 # Output level for logging, including package level options 76 log-level = "info" 77 78 # Output format: 'plain' (colored text) or 'json' 79 log-format = "plain" 80 81 ##### additional base config options ##### 82 83 # Path to the JSON file containing the initial validator set and other meta data 84 genesis-file = "config/genesis.json" 85 86 # Path to the JSON file containing the private key to use for node authentication in the p2p protocol 87 node-key-file = "config/node_key.json" 88 89 # Mechanism to connect to the ABCI application: socket | grpc 90 abci = "socket" 91 92 # If true, query the ABCI app on connecting to a new peer 93 # so the app can decide if we should keep the connection or not 94 filter-peers = false 95 96 97 ####################################################### 98 ### Priv Validator Configuration ### 99 ####################################################### 100 [priv-validator] 101 102 # Path to the JSON file containing the private key to use as a validator in the consensus protocol 103 key-file = "config/priv_validator_key.json" 104 105 # Path to the JSON file containing the last sign state of a validator 106 state-file = "data/priv_validator_state.json" 107 108 # TCP or UNIX socket address for Tendermint to listen on for 109 # connections from an external PrivValidator process 110 # when the listenAddr is prefixed with grpc instead of tcp it will use the gRPC Client 111 laddr = "" 112 113 # Path to the client certificate generated while creating needed files for secure connection. 114 # If a remote validator address is provided but no certificate, the connection will be insecure 115 client-certificate-file = "" 116 117 # Client key generated while creating certificates for secure connection 118 client-key-file = "" 119 120 # Path to the Root Certificate Authority used to sign both client and server certificates 121 root-ca-file = "" 122 123 124 ####################################################################### 125 ### Advanced Configuration Options ### 126 ####################################################################### 127 128 ####################################################### 129 ### RPC Server Configuration Options ### 130 ####################################################### 131 [rpc] 132 133 # TCP or UNIX socket address for the RPC server to listen on 134 laddr = "tcp://127.0.0.1:26657" 135 136 # A list of origins a cross-domain request can be executed from 137 # Default value '[]' disables cors support 138 # Use '["*"]' to allow any origin 139 cors-allowed-origins = [] 140 141 # A list of methods the client is allowed to use with cross-domain requests 142 cors-allowed-methods = ["HEAD", "GET", "POST", ] 143 144 # A list of non simple headers the client is allowed to use with cross-domain requests 145 cors-allowed-headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time", ] 146 147 # Activate unsafe RPC commands like /dial-seeds and /unsafe-flush-mempool 148 unsafe = false 149 150 # Maximum number of simultaneous connections (including WebSocket). 151 # If you want to accept a larger number than the default, make sure 152 # you increase your OS limits. 153 # 0 - unlimited. 154 # Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} 155 # 1024 - 40 - 10 - 50 = 924 = ~900 156 max-open-connections = 900 157 158 # Maximum number of unique clientIDs that can /subscribe 159 # If you're using /broadcast_tx_commit, set to the estimated maximum number 160 # of broadcast_tx_commit calls per block. 161 max-subscription-clients = 100 162 163 # Maximum number of unique queries a given client can /subscribe to 164 # If you're using a Local RPC client and /broadcast_tx_commit, set this 165 # to the estimated maximum number of broadcast_tx_commit calls per block. 166 max-subscriptions-per-client = 5 167 168 # If true, disable the websocket interface to the RPC service. This has 169 # the effect of disabling the /subscribe, /unsubscribe, and /unsubscribe_all 170 # methods for event subscription. 171 # 172 # EXPERIMENTAL: This setting will be removed in Tendermint v0.37. 173 experimental-disable-websocket = false 174 175 # The time window size for the event log. All events up to this long before 176 # the latest (up to EventLogMaxItems) will be available for subscribers to 177 # fetch via the /events method. If 0 (the default) the event log and the 178 # /events RPC method are disabled. 179 event-log-window-size = "0s" 180 181 # The maxiumum number of events that may be retained by the event log. If 182 # this value is 0, no upper limit is set. Otherwise, items in excess of 183 # this number will be discarded from the event log. 184 # 185 # Warning: This setting is a safety valve. Setting it too low may cause 186 # subscribers to miss events. Try to choose a value higher than the 187 # maximum worst-case expected event load within the chosen window size in 188 # ordinary operation. 189 # 190 # For example, if the window size is 10 minutes and the node typically 191 # averages 1000 events per ten minutes, but with occasional known spikes of 192 # up to 2000, choose a value > 2000. 193 event-log-max-items = 0 194 195 # How long to wait for a tx to be committed during /broadcast_tx_commit. 196 # WARNING: Using a value larger than 10s will result in increasing the 197 # global HTTP write timeout, which applies to all connections and endpoints. 198 # See https://github.com/tendermint/tendermint/issues/3435 199 timeout-broadcast-tx-commit = "10s" 200 201 # Maximum size of request body, in bytes 202 max-body-bytes = 1000000 203 204 # Maximum size of request header, in bytes 205 max-header-bytes = 1048576 206 207 # The path to a file containing certificate that is used to create the HTTPS server. 208 # Might be either absolute path or path related to Tendermint's config directory. 209 # If the certificate is signed by a certificate authority, 210 # the certFile should be the concatenation of the server's certificate, any intermediates, 211 # and the CA's certificate. 212 # NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. 213 # Otherwise, HTTP server is run. 214 tls-cert-file = "" 215 216 # The path to a file containing matching private key that is used to create the HTTPS server. 217 # Might be either absolute path or path related to Tendermint's config directory. 218 # NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. 219 # Otherwise, HTTP server is run. 220 tls-key-file = "" 221 222 # pprof listen address (https://golang.org/pkg/net/http/pprof) 223 pprof-laddr = "" 224 225 ####################################################### 226 ### P2P Configuration Options ### 227 ####################################################### 228 [p2p] 229 230 # Select the p2p internal queue 231 queue-type = "priority" 232 233 # Address to listen for incoming connections 234 laddr = "tcp://0.0.0.0:26656" 235 236 # Address to advertise to peers for them to dial 237 # If empty, will use the same port as the laddr, 238 # and will introspect on the listener or use UPnP 239 # to figure out the address. ip and port are required 240 # example: 159.89.10.97:26656 241 external-address = "" 242 243 # Comma separated list of seed nodes to connect to 244 # We only use these if we can’t connect to peers in the addrbook 245 # NOTE: not used by the new PEX reactor. Please use BootstrapPeers instead. 246 # TODO: Remove once p2p refactor is complete 247 # ref: https:#github.com/tendermint/tendermint/issues/5670 248 seeds = "" 249 250 # Comma separated list of peers to be added to the peer store 251 # on startup. Either BootstrapPeers or PersistentPeers are 252 # needed for peer discovery 253 bootstrap-peers = "" 254 255 # Comma separated list of nodes to keep persistent connections to 256 persistent-peers = "" 257 258 # UPNP port forwarding 259 upnp = false 260 261 # Maximum number of connections (inbound and outbound). 262 max-connections = 64 263 264 # Rate limits the number of incoming connection attempts per IP address. 265 max-incoming-connection-attempts = 100 266 267 # Set true to enable the peer-exchange reactor 268 pex = true 269 270 # Comma separated list of peer IDs to keep private (will not be gossiped to other peers) 271 # Warning: IPs will be exposed at /net_info, for more information https://github.com/tendermint/tendermint/issues/3055 272 private-peer-ids = "" 273 274 # Toggle to disable guard against peers connecting from the same ip. 275 allow-duplicate-ip = false 276 277 # Peer connection configuration. 278 handshake-timeout = "20s" 279 dial-timeout = "3s" 280 281 # Time to wait before flushing messages out on the connection 282 # TODO: Remove once MConnConnection is removed. 283 flush-throttle-timeout = "100ms" 284 285 # Maximum size of a message packet payload, in bytes 286 # TODO: Remove once MConnConnection is removed. 287 max-packet-msg-payload-size = 1400 288 289 # Rate at which packets can be sent, in bytes/second 290 # TODO: Remove once MConnConnection is removed. 291 send-rate = 5120000 292 293 # Rate at which packets can be received, in bytes/second 294 # TODO: Remove once MConnConnection is removed. 295 recv-rate = 5120000 296 297 298 ####################################################### 299 ### Mempool Configuration Option ### 300 ####################################################### 301 [mempool] 302 303 recheck = true 304 broadcast = true 305 306 # Maximum number of transactions in the mempool 307 size = 5000 308 309 # Limit the total size of all txs in the mempool. 310 # This only accounts for raw transactions (e.g. given 1MB transactions and 311 # max-txs-bytes=5MB, mempool will only accept 5 transactions). 312 max-txs-bytes = 1073741824 313 314 # Size of the cache (used to filter transactions we saw earlier) in transactions 315 cache-size = 10000 316 317 # Do not remove invalid transactions from the cache (default: false) 318 # Set to true if it's not possible for any invalid transaction to become valid 319 # again in the future. 320 keep-invalid-txs-in-cache = false 321 322 # Maximum size of a single transaction. 323 # NOTE: the max size of a tx transmitted over the network is {max-tx-bytes}. 324 max-tx-bytes = 1048576 325 326 # Maximum size of a batch of transactions to send to a peer 327 # Including space needed by encoding (one varint per transaction). 328 # XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 329 max-batch-bytes = 0 330 331 # ttl-duration, if non-zero, defines the maximum amount of time a transaction 332 # can exist for in the mempool. 333 # 334 # Note, if ttl-num-blocks is also defined, a transaction will be removed if it 335 # has existed in the mempool at least ttl-num-blocks number of blocks or if it's 336 # insertion time into the mempool is beyond ttl-duration. 337 ttl-duration = "0s" 338 339 # ttl-num-blocks, if non-zero, defines the maximum number of blocks a transaction 340 # can exist for in the mempool. 341 # 342 # Note, if ttl-duration is also defined, a transaction will be removed if it 343 # has existed in the mempool at least ttl-num-blocks number of blocks or if 344 # it's insertion time into the mempool is beyond ttl-duration. 345 ttl-num-blocks = 0 346 347 ####################################################### 348 ### State Sync Configuration Options ### 349 ####################################################### 350 [statesync] 351 # State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine 352 # snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in 353 # the network to take and serve state machine snapshots. State sync is not attempted if the node 354 # has any local state (LastBlockHeight > 0). The node will have a truncated block history, 355 # starting from the height of the snapshot. 356 enable = false 357 358 # State sync uses light client verification to verify state. This can be done either through the 359 # P2P layer or RPC layer. Set this to true to use the P2P layer. If false (default), RPC layer 360 # will be used. 361 use-p2p = false 362 363 # If using RPC, at least two addresses need to be provided. They should be compatible with net.Dial, 364 # for example: "host.example.com:2125" 365 rpc-servers = "" 366 367 # The hash and height of a trusted block. Must be within the trust-period. 368 trust-height = 0 369 trust-hash = "" 370 371 # The trust period should be set so that Tendermint can detect and gossip misbehavior before 372 # it is considered expired. For chains based on the Cosmos SDK, one day less than the unbonding 373 # period should suffice. 374 trust-period = "168h0m0s" 375 376 # Time to spend discovering snapshots before initiating a restore. 377 discovery-time = "15s" 378 379 # Temporary directory for state sync snapshot chunks, defaults to os.TempDir(). 380 # The synchronizer will create a new, randomly named directory within this directory 381 # and remove it when the sync is complete. 382 temp-dir = "" 383 384 # The timeout duration before re-requesting a chunk, possibly from a different 385 # peer (default: 15 seconds). 386 chunk-request-timeout = "15s" 387 388 # The number of concurrent chunk and block fetchers to run (default: 4). 389 fetchers = "4" 390 391 ####################################################### 392 ### Consensus Configuration Options ### 393 ####################################################### 394 [consensus] 395 396 wal-file = "data/cs.wal/wal" 397 398 # How many blocks to look back to check existence of the node's consensus votes before joining consensus 399 # When non-zero, the node will panic upon restart 400 # if the same consensus key was used to sign {double-sign-check-height} last blocks. 401 # So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic. 402 double-sign-check-height = 0 403 404 # EmptyBlocks mode and possible interval between empty blocks 405 create-empty-blocks = true 406 create-empty-blocks-interval = "0s" 407 408 # Reactor sleep duration parameters 409 peer-gossip-sleep-duration = "100ms" 410 peer-query-maj23-sleep-duration = "2s" 411 412 ### Unsafe Timeout Overrides ### 413 414 # These fields provide temporary overrides for the Timeout consensus parameters. 415 # Use of these parameters is strongly discouraged. Using these parameters may have serious 416 # liveness implications for the validator and for the chain. 417 # 418 # These fields will be removed from the configuration file in the v0.37 release of Tendermint. 419 # For additional information, see ADR-74: 420 # https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-074-timeout-params.md 421 422 # This field provides an unsafe override of the Propose timeout consensus parameter. 423 # This field configures how long the consensus engine will wait for a proposal block before prevoting nil. 424 # If this field is set to a value greater than 0, it will take effect. 425 # unsafe-propose-timeout-override = 0s 426 427 # This field provides an unsafe override of the ProposeDelta timeout consensus parameter. 428 # This field configures how much the propose timeout increases with each round. 429 # If this field is set to a value greater than 0, it will take effect. 430 # unsafe-propose-timeout-delta-override = 0s 431 432 # This field provides an unsafe override of the Vote timeout consensus parameter. 433 # This field configures how long the consensus engine will wait after 434 # receiving +2/3 votes in a around. 435 # If this field is set to a value greater than 0, it will take effect. 436 # unsafe-vote-timeout-override = 0s 437 438 # This field provides an unsafe override of the VoteDelta timeout consensus parameter. 439 # This field configures how much the vote timeout increases with each round. 440 # If this field is set to a value greater than 0, it will take effect. 441 # unsafe-vote-timeout-delta-override = 0s 442 443 # This field provides an unsafe override of the Commit timeout consensus parameter. 444 # This field configures how long the consensus engine will wait after receiving 445 # +2/3 precommits before beginning the next height. 446 # If this field is set to a value greater than 0, it will take effect. 447 # unsafe-commit-timeout-override = 0s 448 449 # This field provides an unsafe override of the BypassCommitTimeout consensus parameter. 450 # This field configures if the consensus engine will wait for the full Commit timeout 451 # before proceeding to the next height. 452 # If this field is set to true, the consensus engine will proceed to the next height 453 # as soon as the node has gathered votes from all of the validators on the network. 454 # unsafe-bypass-commit-timeout-override = 455 456 ####################################################### 457 ### Transaction Indexer Configuration Options ### 458 ####################################################### 459 [tx-index] 460 461 # The backend database list to back the indexer. 462 # If list contains "null" or "", meaning no indexer service will be used. 463 # 464 # The application will set which txs to index. In some cases a node operator will be able 465 # to decide which txs to index based on configuration set in the application. 466 # 467 # Options: 468 # 1) "null" 469 # 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). 470 # 3) "psql" - the indexer services backed by PostgreSQL. 471 # When "kv" or "psql" is chosen "tx.height" and "tx.hash" will always be indexed. 472 indexer = ["kv"] 473 474 # The PostgreSQL connection configuration, the connection format: 475 # postgresql://<user>:<password>@<host>:<port>/<db>?<opts> 476 psql-conn = "" 477 478 ####################################################### 479 ### Instrumentation Configuration Options ### 480 ####################################################### 481 [instrumentation] 482 483 # When true, Prometheus metrics are served under /metrics on 484 # PrometheusListenAddr. 485 # Check out the documentation for the list of available metrics. 486 prometheus = false 487 488 # Address to listen for Prometheus collector(s) connections 489 prometheus-listen-addr = ":26660" 490 491 # Maximum number of simultaneous connections. 492 # If you want to accept a larger number than the default, make sure 493 # you increase your OS limits. 494 # 0 - unlimited. 495 max-open-connections = 3 496 497 # Instrumentation namespace 498 namespace = "tendermint" 499 ``` 500 501 ## Empty blocks VS no empty blocks 502 503 ### create-empty-blocks = true 504 505 If `create-empty-blocks` is set to `true` in your config, blocks will be 506 created ~ every second (with default consensus parameters). You can regulate 507 the delay between blocks by changing the `timeout-commit`. E.g. `timeout-commit = "10s"` should result in ~ 10 second blocks. 508 509 ### create-empty-blocks = false 510 511 In this setting, blocks are created when transactions received. 512 513 Note after the block H, Tendermint creates something we call a "proof block" 514 (only if the application hash changed) H+1. The reason for this is to support 515 proofs. If you have a transaction in block H that changes the state to X, the 516 new application hash will only be included in block H+1. If after your 517 transaction is committed, you want to get a light-client proof for the new state 518 (X), you need the new block to be committed in order to do that because the new 519 block has the new application hash for the state X. That's why we make a new 520 (empty) block if the application hash changes. Otherwise, you won't be able to 521 make a proof for the new state. 522 523 Plus, if you set `create-empty-blocks-interval` to something other than the 524 default (`0`), Tendermint will be creating empty blocks even in the absence of 525 transactions every `create-empty-blocks-interval`. For instance, with 526 `create-empty-blocks = false` and `create-empty-blocks-interval = "30s"`, 527 Tendermint will only create blocks if there are transactions, or after waiting 528 30 seconds without receiving any transactions. 529 530 531 ## P2P settings 532 533 This section will cover settings within the p2p section of the `config.toml`. 534 535 - `external-address` = is the address that will be advertised for other nodes to use. We recommend setting this field with your public IP and p2p port. 536 - > We recommend setting an external address. When used in a private network, Tendermint Core currently doesn't advertise the node's public address. There is active and ongoing work to improve the P2P system, but this is a helpful workaround for now. 537 - `persistent-peers` = is a list of comma separated peers that you will always want to be connected to. If you're already connected to the maximum number of peers, persistent peers will not be added. 538 - `pex` = turns the peer exchange reactor on or off. Validator node will want the `pex` turned off so it would not begin gossiping to unknown peers on the network. PeX can also be turned off for statically configured networks with fixed network connectivity. For full nodes on open, dynamic networks, it should be turned on. 539 - `private-peer-ids` = is a comma-separated list of node ids that will _not_ be exposed to other peers (i.e., you will not tell other peers about the ids in this list). This can be filled with a validator's node id. 540 541 Recently the Tendermint Team conducted a refactor of the p2p layer. This lead to multiple config parameters being deprecated and/or replaced. 542 543 We will cover the new and deprecated parameters below. 544 ### New Parameters 545 546 There are three new parameters, which are enabled if use-legacy is set to false. 547 548 - `queue-type` = sets a type of queue to use in the p2p layer. There are three options available `fifo`, `priority` and `wdrr`. The default is priority 549 - `bootstrap-peers` = is a list of comma seperated peers which will be used to bootstrap the address book. 550 - `max-connections` = is the max amount of allowed inbound and outbound connections. 551 ### Deprecated Parameters 552 553 > Note: For Tendermint 0.35, there are two p2p implementations. The old version is used by default with the deprecated fields. The new implementation uses different config parameters, explained above. 554 555 - `max-num-inbound-peers` = is the maximum number of peers you will accept inbound connections from at one time (where they dial your address and initiate the connection). *This was replaced by `max-connections`* 556 - `max-num-outbound-peers` = is the maximum number of peers you will initiate outbound connects to at one time (where you dial their address and initiate the connection).*This was replaced by `max-connections`* 557 - `unconditional-peer-ids` = is similar to `persistent-peers` except that these peers will be connected to even if you are already connected to the maximum number of peers. This can be a validator node ID on your sentry node. *Deprecated* 558 - `seeds` = is a list of comma separated seed nodes that you will connect upon a start and ask for peers. A seed node is a node that does not participate in consensus but only helps propagate peers to nodes in the networks *Deprecated, replaced by bootstrap peers* 559 560 ## Indexing Settings 561 562 Operators can configure indexing via the `[tx_index]` section. The `indexer` 563 field takes a series of supported indexers. If `null` is included, indexing will 564 be turned off regardless of other values provided. 565 566 ### Supported Indexers 567 568 #### KV 569 570 The `kv` indexer type is an embedded key-value store supported by the main 571 underlying Tendermint database. Using the `kv` indexer type allows you to query 572 for block and transaction events directly against Tendermint's RPC. However, the 573 query syntax is limited and so this indexer type might be deprecated or removed 574 entirely in the future. 575 576 #### PostgreSQL 577 578 The `psql` indexer type allows an operator to enable block and transaction event 579 indexing by proxying it to an external PostgreSQL instance allowing for the events 580 to be stored in relational models. Since the events are stored in a RDBMS, operators 581 can leverage SQL to perform a series of rich and complex queries that are not 582 supported by the `kv` indexer type. Since operators can leverage SQL directly, 583 searching is not enabled for the `psql` indexer type via Tendermint's RPC -- any 584 such query will fail. 585 586 Note, the SQL schema is stored in `state/indexer/sink/psql/schema.sql` and operators 587 must explicitly create the relations prior to starting Tendermint and enabling 588 the `psql` indexer type. 589 590 Example: 591 592 ```shell 593 $ psql ... -f state/indexer/sink/psql/schema.sql 594 ``` 595 596 ## Unsafe Consensus Timeout Overrides 597 598 Tendermint version v0.36 provides a set of unsafe overrides for the consensus 599 timing parameters. These parameters are provided as a safety measure in case of 600 unusual timing issues during the upgrade to v0.36 so that an operator may 601 override the timings for a single node. These overrides will completely be 602 removed in Tendermint v0.37. 603 604 - `unsafe-propose-override`: How long the Tendermint consensus engine will wait 605 for a proposal block before prevoting nil. 606 - `unsafe-propose-delta-override`: How much the propose timeout increase with 607 each round. 608 - `unsafe-vote-override`: How long the consensus engine will wait after 609 receiving +2/3 votes in a round. 610 - `unsafe-vote-delta-override`: How much the vote timeout increases with each 611 round. 612 - `unsafe-commit-override`: How long the consensus engine will wait after 613 receiving +2/3 precommits before beginning the next height. 614 - `unsafe-bypass-commit-timeout-override`: Configures if the consensus engine 615 will wait for the full commit timeout before proceeding to the next height. If 616 this field is set to true, the consensus engine will proceed to the next 617 height as soon as the node has gathered votes from all of the validators on 618 the network.