Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.
This guide covers the details of running a Sei node, including configuration
management, maintenance procedures, and best practices for stable,
high-performance operation.
The Sei node configuration is stored in $HOME/.sei/config/:
$HOME/.sei/config/├── app.toml # Application configuration (gas fees, API settings, pruning, etc.)├── config.toml # Core Tendermint settings (network, consensus, and RPC)├── client.toml # CLI and client-related settings├── genesis.json # Chain genesis file, defines initial state├── node_key.json # Unique node identity key for peer-to-peer (P2P) networking└── priv_validator_key.json # Validator private signing key (if running as a validator)
The state-store databases live outside the config directory:
Cosmos SS uses $HOME/.sei/data/{backend} in the legacy layout and
$HOME/.sei/data/state_store/cosmos/{backend} in the current layout.
EVM SS uses $HOME/.sei/data/evm_ss in the legacy layout and
$HOME/.sei/data/state_store/evm/{backend} in the current layout.
Non-empty ss-db-directory and evm-ss-db-directory settings override
those locations.
The snippets below are opinionated tuning recommendations on top of the
defaults. For the full unmodified app.toml, config.toml, and
client.toml files from the latest tagged seid release, see
Default configurations at the bottom of this
section.
[p2p]# Public address other nodes use to dial in (host:port)external-address = "your-public-ip:26656"# Local address to listen for incoming P2P connectionsladdr = "tcp://0.0.0.0:26656"# Combined inbound + outbound peer limit. Default is 100; raise it for# well-connected RPC nodes. (`max-num-inbound-peers` / `max-num-outbound-peers`# from older Tendermint configs no longer apply.)max-connections = 200# Per-connection bandwidth caps in bytes/sec. Defaults are 20 MiB/s; raise# only if your link can sustain it.send-rate = 20971520recv-rate = 20971520[rpc]# RPC listen addressladdr = "tcp://0.0.0.0:26657"# Maximum number of simultaneous connections (HTTP + WS)max-open-connections = 900# Transaction confirmation timeout for /broadcast_tx_committimeout-broadcast-tx-commit = "10s"
# Minimum gas prices to prevent spam transactions# (mainnet enforces a chain-wide minimum of 0.02usei)minimum-gas-prices = "0.02usei"# Block retention for /block, /block_results, etc., and the floor used by# the receipt store's pruner. 0 disables block pruning.min-retain-blocks = 100000# Concurrent transaction execution workers. The default is set dynamically# (2× CPU cores, capped at 128, minimum 10).concurrency-workers = 10# Optimistic Concurrency Control for parallel tx executionocc-enabled = true[api]# Enable the REST/Cosmos API server (port 1317)enable = truemax-open-connections = 1000[state-commit]# SeiDB state-commit (memiavl + FlatKV) is mandatory. The legacy IAVL backend# has been fully removed; if sc-enable is false the node panics at startup with# "SeiDB state-commit (SC) must be enabled; IAVL backend has been fully deprecated".sc-enable = true[state-store]# Historical SS layer for queries. Required for any node serving RPC.ss-enable = true# State-store backend. Use PebbleDB; RocksDB support will be removed.ss-backend = "pebbledb"# 0 = keep everything; 100,000 is roughly 28 hours of pacific-1 history.ss-keep-recent = 100000[receipt-store]# Storage backend for EVM transaction receipts. Supported backends: pebbledb# (aka pebble) and littidx.rs-backend = "pebbledb"
The receipt-store backend accepts pebbledb (also called pebble) and
littidx. The node rejects an unsupported value, such as rs-backend = "parquet"
(or RECEIPT_BACKEND=parquet), with the error unsupported receipt-store backend "parquet"; supported: pebbledb, littidx.littidx stores receipt bodies in LittDB and keeps a PebbleDB tag index. With
this index, eth_getLogs can filter logs without a scan of whole blocks. It uses
the same min-retain-blocks and prune-interval-seconds settings as pebbledb.
It flushes receipt bodies every few milliseconds and does not write them through
a WAL. A hard crash can therefore lose the newest receipt bodies. A read of a
lost receipt returns not found.In the localnode and rpcnode configuration scripts, if you enable Giga Storage
(GIGA_STORAGE=true) and RECEIPT_BACKEND is not set, the receipt backend
defaults to pebble. The former receipt-store.tx-index-backend config field
has been removed.
This section shows the full unmodified app.toml, config.toml, and
client.toml files that seid init produces with the latest tagged seid
release. Use them as the canonical reference for every available setting and
its default value.
Do not use RocksDB for new or resynced nodes. The generated app.toml below mirrors the latest tagged release and may still list RocksDB as a state-store option. RocksDB support for the SeiDB state store will be removed. No target release has been published.
app.toml
config.toml
client.toml
Application-layer configuration: gas, API, gRPC, pruning, SeiDB, EVM, and other settings.
# This is a TOML config file.# For more information, see https://github.com/toml-lang/toml################################################################################## Base Configuration ################################################################################### The minimum gas prices a validator is willing to accept for processing a# transaction. A transaction's fees must meet the minimum of any denomination# specified in this config (e.g. 0.25token1;0.0001token2).minimum-gas-prices = "0.01usei"# MinRetainBlocks defines the minimum block height offset from the current block# for pruning Tendermint blocks. Set to 0 to disable pruning. This only affects# Tendermint block pruning, not application state (see "pruning-*" configs).min-retain-blocks = 100000# ConcurrencyWorkers defines how many workers to run for concurrent transaction execution.# Default is dynamically set to 2x CPU cores, capped at 128, with a minimum of 10.concurrency-workers = 10# occ-enabled defines whether OCC is enabled or not for transaction executionocc-enabled = true# HaltHeight contains a non-zero block height at which a node will gracefully# halt and shutdown that can be used to assist upgrades and testing.## Note: Commitment of state will be attempted on the corresponding block.halt-height = 0# FreezeHeight contains the first block height a full node must not execute.# Query RPC remains available, while transaction and evidence submission,# mempool gossip, and state sync are disabled from startup.freeze-height = 0# HaltTime contains a non-zero minimum block time (in Unix seconds) at which# a node will gracefully halt and shutdown that can be used to assist upgrades# and testing.## Note: Commitment of state will be attempted on the corresponding block.halt-time = 0# InterBlockCache enables inter-block caching.inter-block-cache = true# IndexEvents defines the set of events in the form {eventType}.{attributeKey},# which informs Tendermint what to index. If empty, all events will be indexed.## Example:# ["message.sender", "message.recipient"]index-events = []# CompactionInterval sets (in seconds) the interval between forced levelDB# compaction. A value of 0 means no forced levelDB.# Default is 0.compaction-interval = 0################################################################################## State Sync Configuration ################################################################################### State sync snapshots allow other nodes to rapidly join the network without replaying historical# blocks, instead downloading and applying a snapshot of the application state at a given height.[state-sync]# snapshot-interval specifies the block interval at which local state sync snapshots are# taken (0 to disable). Must be a multiple of pruning-keep-every.snapshot-interval = 0# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all).snapshot-keep-recent = 2# snapshot-directory sets the directory for where state sync snapshots are persisted.# default is empty which will then store under the app home directory same as before.snapshot-directory = ""################################################################################## Query Configuration ################################################################################### Pagination limits on the ABCI and gRPC query path protect the node from expensive# store scans by untrusted callers (for example, public RPC clients). Operators tune# these values for their deployment, allowlist trusted indexers on Tendermint RPC or# Cosmos gRPC, or set disable-limits on nodes not exposed to untrusted callers.[query]# DisableLimits turns off pagination limits for all query origins. Use only on nodes# that are not exposed to untrusted callers.disable-limits = false# TrustedCIDRs lists caller CIDRs that bypass pagination limits. Matching uses the# direct TCP peer (Tendermint RPC RemoteAddr or Cosmos gRPC peer address), not# forwarded headers. It applies only to abci_query on the Tendermint RPC listener# and to queries on grpc.address; REST/LCD on api.address (including grpc-gateway# routes) relays queries in-process without caller origin, so trusted-cidrs has no# effect there. Trusted indexers using REST should use gRPC or Tendermint RPC, or# set disable-limits on nodes not exposed to untrusted callers.# Behind a load balancer or reverse proxy every external client shares the proxy# address, so adding the proxy CIDR here bypasses limits for all traffic through# that ingress, not just internal indexers.trusted-cidrs = []# MaxLimit is the maximum page size for untrusted query origins. 0 uses the default.max-limit = 1000# MaxOffset is the maximum offset for untrusted query origins. 0 uses the default.max-offset = 10000# MaxIterations is the maximum store entries a single untrusted query may scan. 0 uses# the default. When the budget is exhausted the response is a partial page with next_key;# total stays 0 even when the client set count_total, so next_key != nil with total == 0# means the total is unknown rather than zero results.max-iterations = 11000################################################################################## State Commit Configuration ##################################################################################[state-commit]# Enable defines if the SeiDB state-commit should be enabled.sc-enable = true# Defines the SC store directory, if not explicitly set, default to application home directorysc-directory = ""# Max concurrent historical proof queries (RPC /store path)sc-historical-proof-max-inflight = 1# Historical proof query rate limit in req/sec (<=0 disables rate limiting)sc-historical-proof-rate-limit = 1# Historical proof query burst sizesc-historical-proof-burst = 1# AsyncCommitBuffer defines the size of asynchronous commit queue, this greatly improve block catching-up# performance, setting to 0 means synchronous commit.sc-async-commit-buffer = 100# KeepRecent defines how many state-commit snapshots (besides the latest one) to keep.# Defaults to 1: a configured value of 0 is overridden to 1.sc-keep-recent = 1# SnapshotInterval defines the block interval the snapshot is taken, default to 10000 blocks.sc-snapshot-interval = 10000# SnapshotMinTimeInterval defines the minimum time interval (in seconds) between snapshots.# This prevents excessive snapshot creation during catch-up and ensures snapshots don't overlap# (current snapshot creation takes 3+ hours). Default to 3600 seconds (1 hour).# Note: If you set a small sc-snapshot-interval (e.g., < 5000), you may want to reduce this value# to allow more frequent snapshots during normal operation.sc-snapshot-min-time-interval = 3600# SnapshotPrefetchThreshold defines the page cache residency threshold (0.0-1.0) to trigger snapshot prefetch.# Prefetch sequentially reads nodes/leaves files into page cache for faster cold-start replay.# Only active trees (evm/bank/acc/wasm) are prefetched, skipping sparse kv files to save memory.# Skips prefetch if more than threshold of pages already resident (e.g., 0.8 = 80%).# Defaults to 0.8sc-snapshot-prefetch-threshold = 0.8# Maximum snapshot write rate in MB/s (global across all trees). 0 = unlimited. Default 100.sc-snapshot-write-rate-mbps = 100# sc-write-mode is the write routing mode. By default it is IGNORED: the# advanced, unrendered state-commit.sc-write-mode-enable-auto defaults to true,# which forces the node to run in auto regardless of this value. In auto the# effective mode is derived from the on-disk migration state and advanced by the# NumKeysToMigratePerBlock gov param, so the node follows a governance-driven EVM# migration with no edits here.## To pin an explicit mode (memiavl_only, flatkv_only, evm_migrated,# test_only_dual_write, ...) you MUST also set# state-commit.sc-write-mode-enable-auto = false; only then is this value# honored. A pinned node does not participate in a governance-driven migration# and diverges from the network once the chain migrates (e.g. auto left enabled# on a flatkv_only-style node would either fail every commit with a# version-mismatch error or silently serve reads from an empty memiavl).## Valid values: memiavl_only, migrate_evm, evm_migrated, migrate_all_but_bank,# all_migrated_but_bank, migrate_bank, flatkv_only, test_only_dual_write, auto.sc-write-mode = "memiavl_only"# HashLogger records a per-block CSV of named hashes (memIAVL module/root hashes, flatKV DB/root# hashes, the app hash, the block hash, and the changeset hash) so block-hash computation can be# studied and compared across nodes. It is a debugging/forensics tool; enabled by default.sc-hash-logger-enable = true# Directory for hash log files. If empty, defaults to a "hash.log" directory under the SC store's data# directory (i.e. <home>/data/hash.log).sc-hash-logger-directory = ""# Number of most-recent blocks to retain on disk. 0 disables block-count retention (disk-size cap only).sc-hash-logger-blocks-to-retain = 0# Size in bytes a hash log file may reach before it is sealed and rotated. Must be > 0.sc-hash-logger-target-file-size = 16777216# Backstop cap in bytes on the total size of sealed hash log files. 0 disables the disk-size cap# (block-count retention only).sc-hash-logger-max-disk-size = 17179869184################################################################################## FlatKV (EVM) Configuration ##################################################################################[state-commit.flatkv]# FlatKV runs with in-code defaults for now; no options are exposed here yet.################################################################################## State Store Configuration ##################################################################################[state-store]# Enable defines whether the state-store should be enabled for storing historical data.# Supporting historical queries or exporting state snapshot requires setting this to true# This config only take effect when SeiDB is enabled (sc-enable = true)ss-enable = true# Defines the directory to store the state store db files# If not explicitly set, default to application home directoryss-db-directory = ""# DBBackend defines the backend database used for state-store.# Supported backends: pebbledb, rocksdb# defaults to pebbledb (recommended)ss-backend = "pebbledb"# AsyncWriteBuffer defines the async queue length for commits to be applied to State Store# Set <= 0 for synchronous writes, which means commits also need to wait for data to be persisted in State Store.# defaults to 100 for asynchronous writesss-async-write-buffer = 100# KeepRecent defines the number of versions to keep in state store# Setting it to 0 means keep everything# Default to keep the last 100,000 blocksss-keep-recent = 100000# PruneInterval defines the minimum interval in seconds + some random delay to trigger SS pruning.# It is recommended to trigger pruning less frequently with a large interval.# default to 600 secondsss-prune-interval = 600# ImportNumWorkers defines the concurrency for state sync import# defaults to 1ss-import-num-workers = 1# EnableReadWriteMetrics emits estimated PebbleDB MVCC read/write counters.# Applies when ss-backend = "pebbledb". Default: false.ss-enable-read-write-metrics = false# SnapshotEnable turns on periodic online state-store snapshots. The cadence is# not configurable here: it mirrors the state-commit snapshot settings.# Two configurations fail startup rather than run without snapshots: an# ss-backend other than "pebbledb", and any SS database that cannot hardlink into# its own snapshot root.# Each retained snapshot pins the SST files it references against compaction, so# budget the write churn of one snapshot interval per retained snapshot. This is# substantial on a multi-TB state store.# Snapshot directories are rollback restore points, not an archive format.# They have no lease, so do not build tools that resolve one and open it later.# Cost and progress are exported as ss_snapshot_* metrics. Default: false.ss-snapshot-enable = false# EVMDBDirectory defines the directory for the optional EVM state-store DB(s).# If unset, defaults to <home>/data/evm_ss when EVM SS is enabled.evm-ss-db-directory = ""# EVMSplit controls whether EVM data is routed to a dedicated SS backend.# When false (default), EVM data lives in the Cosmos SS backend alongside# everything else. When true, EVM data is routed exclusively to the EVM SS# backend; non-EVM data stays in Cosmos SS. No fallback between backends.evm-ss-split = false# SeparateEVMSubDBs controls whether EVM data is split across per-type DBs.# When false, all EVM data stays in one DB using the current unified layout.# When true, data is routed to separate DBs while preserving the same evm key prefix format.evm-ss-separate-dbs = false################################################################################## Receipt Store Configuration ##################################################################################[receipt-store]# Backend defines the receipt store backend.# Supported backends: pebble (aka pebbledb)# defaults to pebbledbrs-backend = "pebbledb"# Defines the receipt store directory. If unset, defaults to <home>/data/ledger/receipt/{backend}db-directory = ""# AsyncWriteBuffer defines the async queue length for commits to be applied to receipt store.# Applies only when rs-backend = "pebbledb".# Set <= 0 for synchronous writes.# defaults to 100async-write-buffer = 100# PruneIntervalSeconds defines the interval in seconds to trigger pruning.# Receipt retention is controlled by the global min-retain-blocks flag.# defaults to 600 secondsprune-interval-seconds = 600# EnableReadWriteMetrics emits estimated read/write counters for Pebble-backed# receipt storage.# Default: false.enable-read-write-metrics = false# LogFilterParallelism bounds how many blocks a single eth_getLogs query scans# concurrently. Applies only when rs-backend = "littidx".# Set <= 0 to use the default.# defaults to 16log-filter-parallelism = 16################################################################################## EVM Configuration ##################################################################################[evm]# controls whether an HTTP EVM server is enabledhttp_enabled = truehttp_port = 8545# controls whether a websocket server is enabledws_enabled = truews_port = 8546# ReadTimeout is the maximum duration for reading the entire# request, including the body.# Because ReadTimeout does not let Handlers make per-request# decisions on each request body's acceptable deadline or# upload rate, most users will prefer to use# ReadHeaderTimeout. It is valid to use them both.read_timeout = "30s"# ReadHeaderTimeout is the amount of time allowed to read# request headers. The connection's read deadline is reset# after reading the headers and the Handler can decide what# is considered too slow for the body. If ReadHeaderTimeout# is zero, the value of ReadTimeout is used. If both are# zero, there is no timeout.read_header_timeout = "30s"# WriteTimeout is the maximum duration before timing out# writes of the response. It is reset whenever a new# request's header is read. Like ReadTimeout, it does not# let Handlers make decisions on a per-request basis.write_timeout = "30s"# IdleTimeout is the maximum amount of time to wait for the# next request when keep-alives are enabled. If IdleTimeout# is zero, the value of ReadTimeout is used. If both are# zero, ReadHeaderTimeout is used.idle_timeout = "2m0s"# Maximum gas limit for simulationsimulation_gas_limit = 10000000# Timeout for EVM call in simulationsimulation_evm_timeout = "1m0s"# list of CORS allowed origins, separated by commacors_origins = "*"# list of WS origins, separated by commaws_origins = "*"# timeout for filtersfilter_timeout = "2m0s"# checkTx timeout for sig verifychecktx_timeout = "5s"# controls whether to have txns go through one by oneslow = false# Enables simulation before broadcasting EVM RPC sendRawTransaction.enable_simulation = true# Deny list defines list of methods that EVM RPC should fail fast, e.g ["debug_traceBlockByNumber"]deny_list = []# Legacy sei_* JSON-RPC (EVM HTTP only - not Cosmos REST on 1317).## DEPRECATION: The sei_* JSON-RPC surface is deprecated and scheduled for removal. Do not# build new integrations on them; use eth_* / debug_* and documented replacements. HTTP 200;# gate errors use standard JSON-RPC error encoding (see evmrpc/AGENTS.md). Successful allowlisted# responses are unchanged; nodes may set HTTP header Sei-Legacy-RPC-Deprecation (see AGENTS.md).## Only methods listed in enabled_legacy_sei_apis are allowed. Init defaults enable all three# remaining address/Cosmos helpers.enabled_legacy_sei_apis = [ "sei_getSeiAddress", "sei_getEVMAddress", "sei_getCosmosTx",]# max number of logs a single eth_getLogs query may match before it errors,# for both bounded and open-ended block rangesmax_log_no_block = 10000# max estimated heap bytes of matched logs a single eth_getLogs query may returnmax_log_bytes = 67108864# max number of blocks to query logs formax_blocks_for_log = 2000# max number of calls allowed in an eth_estimateGasAfterCalls requestmax_estimate_gas_calls = 100# max number of accounts allowed in a single state overridemax_state_override_accounts = 100# max number of storage slots allowed per account in a state overridemax_state_override_slots = 1000# max number of concurrent NewHead subscriptionsmax_subscriptions_new_head = 10000# max number of concurrent logs subscriptionsmax_subscriptions_logs = 1000# MaxConcurrentTraceCalls defines the maximum number of concurrent debug_trace calls.# Set to 0 for unlimited.max_concurrent_trace_calls = 10# Max number of blocks allowed to look back for tracing# Set to -1 for unlimited lookback, which is useful for archive nodes.max_trace_lookback_blocks = 10000# Timeout for each trace calltrace_timeout = "30s"# MaxTraceStructLogBytes bounds the retained struct-logger output (in bytes) per traced# transaction on the default debug_trace* endpoints, guarding against quadratic memory growth# from traces that read many distinct storage slots. The bound is per transaction, not per RPC# call: a debug_traceBlock* call over N transactions retains up to N times this value (and the# parallelized path holds several concurrent traces live). Set to 0 for unlimited (matches# upstream geth behavior).max_trace_struct_log_bytes = 33554432# Native debug tracers that may be requested with TraceConfig.Tracer. The default# struct logger remains available when Tracer is omitted. Request-supplied# JavaScript tracer source is disabled and cannot be enabled through this list.# Set to [] to disable all named tracers.trace_allowed_tracers = ["callTracer", "prestateTracer", "flatCallTracer", "4byteTracer", "noopTracer", "muxTracer"]# Allow request-supplied JavaScript tracer source in TraceConfig.Tracer. This# executes untrusted code in-process; keep disabled on public/default RPC nodes.# Enabling this does not widen trace_allowed_tracers: native tracer names must# still be listed there to be usable.trace_allow_js_tracers = false# Enable the parallelized default debug_traceBlock* path.enable_parallelized_block_trace = false# WorkerPoolSize defines the number of workers in the worker pool.# Default: min(64, CPU cores × 2). Capped at 64 to prevent excessive goroutines on high-core machines.# Set to 0 to use the default.worker_pool_size = 8# WorkerQueueSize defines the size of the task queue in the worker pool.# Default: 1000 tasks. Set to 0 to use the default.worker_queue_size = 1000# TraceBakeEnabled, when true, runs a background worker that re-executes# each committed block with the configured tracers and stores the result# to <home>/data/trace_db. debug_traceTransaction with a bakeable# tracer config (callTracer / prestateTracer / flatCallTracer) returns# from cache on hit. Recommended for RPC nodes only; default false.trace_bake_enabled = false# Number of re-execution worker goroutines (default 1).trace_bake_workers = 1# Bounded in-flight height queue. Drops on full so consensus never blocks.trace_bake_queue_size = 4096# Which tracers to bake per block; must be native tracer names (validated at startup).trace_bake_tracers = ["callTracer"]# Rolling cache window: prune blocks older than (latest - this).# 0 disables pruning (cache grows forever).trace_bake_window_blocks = 0# TraceBakeUseSnapshot, when true, uses in-memory memiavl snapshots as the# state backend for trace baking when the store backend supports snapshots.# Watch these metrics when enabling on a high-throughput node:# - memiavl_mem_node_total_size / memiavl_num_of_mem_node: rise if held# snapshots are pinning too many COW nodes; lower the window or drop the# memiavl snapshot interval.# - trace baker dropped/baked counters: dropped > 0 or baked lagging chain# tip means the baker is falling behind.trace_bake_use_snapshot = false# Number of recent memiavl snapshots to retain for trace baking.trace_bake_snapshot_window = 64# ip_rate_limit_rps is the per-IP sustained request rate in requests/second.# Set to 0 to disable per-IP throttling (no HTTP 429). Does not bypass the# admission middleware; set rate_limiting_enabled = false for a full bypass.ip_rate_limit_rps = 200# ip_rate_limit_burst is the maximum per-IP burst above the sustained rate.# Set to 0 to disable per-IP throttling (same effect as ip_rate_limit_rps = 0).# Must be at least batch_request_limit when both are positive and rate_limiting_enabled# is true (one token is charged per batch element) - enforced at startup.ip_rate_limit_burst = 1000# rate_limiting_enabled is the master switch for the rate-limit admission# middleware on the EVM HTTP plane (:8545). When false, requests bypass method# extraction and all rejections from that layer (HTTP 400/413/429).rate_limiting_enabled = false# trusted_proxy_cidrs lists CIDRs whose X-Forwarded-For headers are trusted when# resolving the client IP for rate limiting. Empty means trust no proxy — set# this to your ingress/LB CIDRs when the node sits behind a reverse proxy.# Do NOT use the full RFC-1918 private ranges unless every address in them is# your own controlled infrastructure.trusted_proxy_cidrs = []# batch_request_limit is the maximum number of requests allowed in a single# JSON-RPC batch (HTTP and WebSocket). Set to 0 to disable the limit.batch_request_limit = 1000# batch_response_max_size is the maximum number of bytes returned from a# batched JSON-RPC call (HTTP and WebSocket). Set to 0 to disable the limit.batch_response_max_size = 25000000# max_request_body_bytes is the maximum size, in bytes, of a single HTTP (:8545)# or WebSocket (:8546) JSON-RPC request/frame. HTTP larger requests are rejected# (HTTP 413) before decode, including at the rate limiter method-extraction# layer. WS frames exceeding this limit close the connection with WebSocket# close code 1009 (no JSON-RPC error). Set to 0 to use the default (5 MiB).# Upgrade note: WS previously used a hardcoded 10 MiB frame cap; if WS clients# send frames in the 5-10 MiB range, set max_request_body_bytes = 10485760# (10 MiB) in app.toml.max_request_body_bytes = 5242880# max_concurrent_request_bytes bounds total request bytes admitted concurrently# on HTTP (:8545) and WebSocket (:8546). Each protocol gets an independent# budget, so peak in-flight bytes process-wide can reach 2× this value. HTTP# charges the budget incrementally as body bytes are read, bounding what a# slow/stalled upload can pin to about one read batch rather than the full# declared Content-Length; requests that would exceed the budget mid-read are# rejected (HTTP 429). WS blocks until budget frees or ws_admission_timeout# elapses; on timeout the peer gets JSON-RPC error -32005 and the connection# closes. Set to 0 to disable on either protocol.max_concurrent_request_bytes = 134217728# ws_admission_timeout bounds how long a WebSocket connection waits for# concurrent-byte budget before the next frame is read or committed. On expiry# the peer receives JSON-RPC error -32005 and the connection closes. Zero or# negative values use the go-ethereum default (30s).ws_admission_timeout = "30s"# body_read_idle_timeout is the maximum idle time allowed between body chunks# while reading an HTTP JSON-RPC request. Stalled body reads return HTTP 408 and# release any byte budget held so far. Set to 0 to disable (ReadTimeout remains# the whole-request backstop).body_read_idle_timeout = "10s"# max_open_connections caps the number of simultaneously accepted connections on# the EVM HTTP and WebSocket listeners. Set to 0 to disable the limit.max_open_connections = 2000################################################################################## Giga Executor Configuration ##################################################################################[giga_executor]# enabled controls whether to use the Giga executor for improved EVM throughput.# Default: trueenabled = true# occ_enabled controls whether to use OCC (Optimistic Concurrency Control) with the Giga executor.# When true, transactions are executed in parallel with conflict detection and retry.# Default: trueocc_enabled = true################################################################################## Admin Configuration (Auto-managed) ##################################################################################[admin_server]# Enable the admin gRPC server for runtime log level control.admin_enabled = false# Listen address for the admin gRPC server. Must be a loopback address.admin_address = "127.0.0.1:9095"################################################################################## Telemetry Configuration (Auto-managed) ##################################################################################[telemetry]# Prefixed with keys to separate services.service-name = ""# Enabled enables the application telemetry functionality. When enabled,# an in-memory sink is also enabled by default. Operators may also enabled# other sinks such as Prometheus.enabled = true# Enable prefixing gauge values with hostname.enable-hostname = false# Enable adding hostname to labels.enable-hostname-label = false# Enable adding service to labels.enable-service-label = false# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink.prometheus-retention-time = 7200# When both 'api.enable' and 'telemetry.enabled' are true, this node will expose# application metrics (custom Cosmos SDK metrics) on the API server endpoint along with the# Tendermint metrics (port 26660) which are always enabled.# GlobalLabels defines a global set of name/value label tuples applied to all# metrics emitted using the wrapper functions defined in telemetry package.## Example:# [["chain_id", "cosmoshub-1"]]global-labels = []################################################################################## API Configuration (Auto-managed) ##################################################################################[api]# Enable defines if the API server should be enabled.enable = true# Swagger defines if swagger documentation should automatically be registered.swagger = true# Address defines the API server to listen on.address = "tcp://0.0.0.0:1317"# MaxOpenConnections defines the number of maximum open connections.max-open-connections = 1000# RPCReadTimeout defines the Tendermint RPC read timeout (in seconds).rpc-read-timeout = 10# RPCWriteTimeout defines the Tendermint RPC write timeout (in seconds).rpc-write-timeout = 0# RPCMaxBodyBytes defines the Tendermint maximum response body (in bytes).rpc-max-body-bytes = 1000000# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk).enabled-unsafe-cors = false################################################################################## Rosetta Configuration (Auto-managed) ##################################################################################[rosetta]# Enable defines if the Rosetta API server should be enabled.enable = false# Address defines the Rosetta API server to listen on.address = ":8080"# Network defines the name of the blockchain that will be returned by Rosetta.blockchain = "app"# Network defines the name of the network that will be returned by Rosetta.network = "network"# Retries defines the number of retries when connecting to the node before failing.retries = 3# Offline defines if Rosetta server should run in offline mode.offline = false################################################################################## gRPC Configuration (Auto-managed) ##################################################################################[grpc]# Enable defines if the gRPC server should be enabled.enable = true# Address defines the gRPC server address to bind to.address = "0.0.0.0:9090"# MaxRecvMsgSize defines the maximum message size in bytes the server can receive.# It bounds per-request memory allocation before the rate limiter fires. Default 4 MB.max-recv-msg-size = 4194304# MaxOpenConnections defines the maximum number of simultaneous open connections. 0 means unlimited.max-open-connections = 1000# MaxConnectionIdle is the duration after which an idle connection is closed (e.g. "5m"). 0 means infinity.max-connection-idle = "5m0s"# MaxConnectionAge is the maximum duration a connection may exist before it is closed (e.g. "30m"). 0 means infinity.max-connection-age = "0s"# MaxConnectionAgeGrace is an additive period after max-connection-age during which the connection is forcibly closed. 0 means infinity.max-connection-age-grace = "0s"# KeepaliveTime is the interval after which, with no activity, the server pings the client to check liveness.keepalive-time = "2h0m0s"# KeepaliveTimeout is the duration the server waits for a keepalive ping ack before closing the connection.keepalive-timeout = "20s"# KeepaliveMinTime is the minimum interval a client must wait between keepalive pings; more frequent pings are penalized.keepalive-min-time = "5m0s"# KeepalivePermitWithoutStream defines whether the server allows keepalive pings even when there are no active streams.keepalive-permit-without-stream = false################################################################################## gRPC Web Configuration (Auto-managed) ##################################################################################[grpc-web]# GRPCWebEnable defines if the gRPC-web should be enabled.# NOTE: gRPC must also be enabled, otherwise, this configuration is a no-op.enable = true# Address defines the gRPC-web server address to bind to.address = "0.0.0.0:9091"# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk).enable-unsafe-cors = false# MaxOpenConnections defines the number of maximum open connections. 0 means unlimited.max-open-connections = 1000################################################################################## Genesis Configuration (Auto-managed) ################################################################################### Genesis config allows configuring whether to stream from an genesis json file in streamed form[genesis]# stream-import specifies whether to the stream the import from the genesis json file. The genesis# file must be in stream form and exported in a streaming fashion.stream-import = false# genesis-stream-file specifies the path of the genesis json file to stream from.genesis-stream-file = ""################################################################################## WASM Configuration (Auto-managed) ##################################################################################[wasm]# This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queriesquery_gas_limit = 300000# This is the number of wasm vm instances we keep cached in memory for speed-up# Warning: this is currently unstable and may lead to crashes, best to keep for 0 unless testing locallylru_size = 0################################################################################## ETH Replay Configuration (Auto-managed) ##################################################################################[eth_replay]eth_replay_enabled = falseeth_rpc = "http://44.234.105.54:18545"eth_data_dir = "/root/.ethereum/chaindata"eth_replay_contract_state_checks = false################################################################################## ETH Block Test Configuration (Auto-managed) ##################################################################################[eth_blocktest]eth_blocktest_enabled = falseeth_blocktest_test_data_path = "~/testdata/"################################################################################## EVM Query Configuration (Auto-managed) ##################################################################################[evm_query]evm_query_gas_limit = 300000################################################################################## Light Invariance Configuration (Auto-managed) ##################################################################################[light_invariance]supply_enabled = true
The generated comments above do not describe two behaviors. First,
min-retain-blocks also controls receipt store retention. The receipt store’s
KeepRecent is derived from min-retain-blocks, and 0 means keep
everything. Second, when evm-ss-db-directory is unset, nodes with an existing
<home>/data/evm_ss directory keep using that legacy path. New nodes default
to <home>/data/state_store/evm/{backend}.
Tendermint and consensus-layer configuration: P2P, RPC, mempool, consensus,
state sync, and other settings.
# This is a TOML config file.# For more information, see https://github.com/toml-lang/toml# NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or# relative to the home directory (e.g. "data"). The home directory is# "$HOME/.tendermint" by default, but could be changed via $TMHOME env variable# or --home cmd flag.########################################################################## Main Base Config Options ########################################################################### A custom human readable name for this nodemoniker = "docs-example"# 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.jsonmode = "full"# Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb# * goleveldb (github.com/syndtr/goleveldb - most popular implementation)# - pure go# - stable# * cleveldb (uses levigo wrapper)# - fast# - requires gcc# - use cleveldb build tag (go build -tags cleveldb)# * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt)# - EXPERIMENTAL# - may be faster is some use-cases (random reads - indexer)# - use boltdb build tag (go build -tags boltdb)# * rocksdb (uses github.com/tecbot/gorocksdb)# - EXPERIMENTAL# - requires gcc# - use rocksdb build tag (go build -tags rocksdb)# * badgerdb (uses github.com/dgraph-io/badger)# - EXPERIMENTAL# - use badgerdb build tag (go build -tags badgerdb)db-backend = "goleveldb"# Database directorydb-dir = "data"# Output level for logging, including package level optionslog-level = "info"# Output format: 'plain' (colored text) or 'json'log-format = "text"##### additional base config options ###### Path to the JSON file containing the initial validator set and other meta datagenesis-file = "config/genesis.json"# A JSON file containing the private key to use for p2p authenticated encryptionnode-key-file = "config/node_key.json"# FastCheckTx bypasses application CheckTx with a stateless EVM transaction parser.# TEST-ONLYfast-check-tx = false# MockApp replaces the provided ABCI application with an in-memory EVM nonce app.# TEST-ONLYmock-app = false########################################################################## Autobahn Configuration ########################################################################### AutobahnConfigFile is the path to a JSON file containing the Autobahn (GigaRouter)# configuration.## Empty disables Autobahn.## Placed here (as a top-level key, before any [section] header) so the# TOML parser sees it at root scope where mapstructure expects it — viper# would otherwise nest it under the immediately preceding section.autobahn-config-file = ""# hash-vault-disabled-unsafe disables the app-hash equivocation guard (HashVault).# DO NOT set this to true unless you are knowingly running an UNSAFE node as a last-resort# recovery measure. A node with this enabled has NO protection against changing its mind about# a committed block's app hash, and will log error-level warnings on every startup.## It is safer to leave HashVault enabled: if you hit a startup panic, first remove the HashVault# files as instructed in the panic message and let the node run. Only disable HashVault if you are# very sure the stored hashes are totally wrong and you keep hitting the same panic on new blocks.## Placed here (as a top-level key, before any [section] header) so the TOML parser sees it at# root scope where mapstructure expects it — viper would otherwise nest it under the# immediately preceding section.hash-vault-disabled-unsafe = false########################################################################## Advanced Configuration Options #################################################################################################################################### RPC Server Configuration Options ##########################################################[rpc]# TCP or UNIX socket address for the RPC server to listen onladdr = "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 origincors-allowed-origins = []# A list of methods the client is allowed to use with cross-domain requestscors-allowed-methods = ["HEAD", "GET", "POST", ]# A list of non simple headers the client is allowed to use with cross-domain requestscors-allowed-headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time", ]# Activate unsafe RPC commands like /dial-seeds and /unsafe-flush-mempoolunsafe = false# Maximum number of simultaneous connections (including WebSocket).# 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 = ~900max-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# Maximum number of unique queries a given client can /subscribe to# If you're using a Local RPC client and /broadcast_tx_commit, set this# to the estimated maximum number of broadcast_tx_commit calls per block.max-subscriptions-per-client = 5# If true, disable the websocket interface to the RPC service. This has# the effect of disabling the /subscribe, /unsubscribe, and /unsubscribe_all# methods for event subscription.## EXPERIMENTAL: This setting will be removed in Tendermint v0.37.experimental-disable-websocket = false# The time window size for the event log. All events up to this long before# the latest (up to EventLogMaxItems) will be available for subscribers to# fetch via the /events method. If 0 (the default) the event log and the# /events RPC method are disabled.event-log-window-size = "30s"# The maxiumum number of events that may be retained by the event log. If# this value is 0, no upper limit is set. Otherwise, items in excess of# this number will be discarded from the event log.## Warning: This setting is a safety valve. Setting it too low may cause# subscribers to miss events. Try to choose a value higher than the# maximum worst-case expected event load within the chosen window size in# ordinary operation.## For example, if the window size is 10 minutes and the node typically# averages 1000 events per ten minutes, but with occasional known spikes of# up to 2000, choose a value > 2000.event-log-max-items = 0# 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/3435timeout-broadcast-tx-commit = "10s"# Maximum size of request body, in bytesmax-body-bytes = 1000000# Maximum size of request header, in bytesmax-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.# Otherwise, HTTP server is run.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 = ""# pprof listen address (https://golang.org/pkg/net/http/pprof)pprof-laddr = ""# timeout for any read requesttimeout-read = "10s"# timeout to read HTTP request headers; mitigates slowloris attacks.# Set to "0s" to disable (not recommended).timeout-read-header = "10s"# HTTP write timeout; acts as a hard backstop for all handlers.# Set to "0s" to disable (not recommended).timeout-write = "30s"# Maximum number of results returned by tx_search and block_search.# Set to 0 to disable the cap (not recommended on public nodes).max-tx-search-results = 10000# Maximum number of KV index entries that all in-flight tx_search and# block_search requests may visit at once. This is a process-wide safety cap# that bounds peak memory (and scan CPU) under broad or highly concurrent# search load; it is shared across requests, not applied per-query. When the# budget is exhausted an in-flight search fails rather than continuing to# accumulate. Set to 0 to disable the cap (not recommended on public nodes).max-search-scan-budget = 100000# ip-rate-limit-rps is the per-IP sustained request rate in requests/second for# CometBFT RPC HTTP (:26657). Zero disables the token bucket (no HTTP 429# rejections). When rate-limiting-enabled is true, the admission middleware still# runs: bodies are parsed and oversize/malformed requests are rejected before dispatch.ip-rate-limit-rps = 200# ip-rate-limit-burst is the maximum per-IP burst above the sustained rate.# Zero disables the token bucket (same effect as ip-rate-limit-rps = 0) and does# not bypass the admission middleware when rate-limiting-enabled is true. Must be# at least the JSON-RPC batch size limit when both are positive and# rate-limiting-enabled is true because the rate limiter charges one token per# JSON-RPC batch element.ip-rate-limit-burst = 400# rate-limiting-enabled is the master switch for the rate-limit admission# middleware on the CometBFT RPC HTTP plane. When false, requests bypass method# extraction and all rejections from that layer (HTTP 400/413/429).rate-limiting-enabled = false# trusted-proxy-cidrs lists CIDRs whose X-Forwarded-For headers are trusted when# resolving the client IP for rate limiting. Empty means trust no proxy.trusted-proxy-cidrs = []########################################################################## P2P Configuration Options ##########################################################################[p2p]# Select the p2p internal queuequeue-type = "simple-priority"# Address to listen for incoming connectionsladdr = "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. ip and port are required# example: 159.89.10.97:26656external-address = ""# Comma separated list of peers to be added to the peer store# on startup. Either BootstrapPeers or PersistentPeers are# needed for peer discoverybootstrap-peers = "0cd5f57c249b5aca815710338e1fe7a14797585d@seed-0-p2p.pacific-1.prod.platform.sei.io:26656,f0f057f1593d28bec11591cf146bd223e0be1866@seed-1-p2p.pacific-1.prod-euw1.platform.sei.io:26656,8e28f62368a1ceae0102645db8584b218650930d@seed-2-p2p.pacific-1.prod-use2.platform.sei.io:26656"# Comma separated list of nodes to keep persistent connections topersistent-peers = ""# Comma separated list of nodes for block sync onlyblocksync-peers = ""# UPNP port forwardingupnp = false# Maximum number of connections (inbound and outbound).max-connections = 100# Rate limits the number of incoming connection attempts per IP address.max-incoming-connection-attempts = 100# Set true to enable the peer-exchange reactorpex = true# Comma separated list of peer IDs to keep private (will not be gossiped to other peers)# Warning: IPs will be exposed at /net_info, for more information https://github.com/tendermint/tendermint/issues/3055private-peer-ids = ""# Toggle to disable guard against peers connecting from the same ip.allow-duplicate-ip = false# Peer connection configuration.handshake-timeout = "10s"dial-timeout = "3s"# How often the node accepts a new inbound connection. A larger interval paces# the accept loop more slowly; if the kernel accept backlog outpaces it, arriving# peers wait past handshake-timeout and the node silently stops acquiring inbound# peers. A value of 0 disables the limiter.accept-interval = "10ms"# Time to wait before flushing messages out on the connection# TODO: Remove once MConnConnection is removed.flush-throttle-timeout = "100ms"# Maximum size of a message packet payload, in bytes# TODO: Remove once MConnConnection is removed.# WARNING: coordinate before changing this default; impacts network interoperabilitymax-packet-msg-payload-size = 1000000# Rate at which packets can be sent, in bytes/second# TODO: Remove once MConnConnection is removed.send-rate = 20971520# Rate at which packets can be received, in bytes/second# TODO: Remove once MConnConnection is removed.recv-rate = 20971520# List of node IDs, to which a connection will be (re)established, dropping an existing peer if any existing limit has been reachedunconditional-peer-ids = ""########################################################################## Mempool Configuration Options ##########################################################################[mempool]# recheck has been moved from a config option to a global# consensus param in v0.36# See https://github.com/tendermint/tendermint/issues/8244 for more information.# Set true to broadcast transactions in the mempool to other nodesbroadcast = true# Maximum number of transactions in the mempoolsize = 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# Size of the cache (used to filter transactions we saw earlier) in transactionscache-size = 10000# Size of the cache duplicate tx keys for tracking metricsduplicate-txs-cache-size = "100000"# 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# again in the future.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# 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/5796max-batch-bytes = 0# ttl-duration, if non-zero, defines the maximum amount of time a transaction# can exist for in the mempool.## Note, if ttl-num-blocks is also defined, a transaction will be removed if it# has existed in the mempool at least ttl-num-blocks number of blocks or if it's# insertion time into the mempool is beyond ttl-duration.ttl-duration = "5s"# ttl-num-blocks, if non-zero, defines the maximum number of blocks a transaction# can exist for in the mempool.## Note, if ttl-duration is also defined, a transaction will be removed if it# has existed in the mempool at least ttl-num-blocks number of blocks or if# it's insertion time into the mempool is beyond ttl-duration.ttl-num-blocks = 10tx-notify-threshold = 0check-tx-error-blacklist-enabled = truecheck-tx-error-threshold = 50pending-size = 5000max-pending-txs-bytes = 1073741824pending-ttl-duration = "0s"pending-ttl-num-blocks = 0# Defines the percentage of transactions with the lowest priority hint# (expressed as a percentage in the range [0.0, 1.0]) that will be# dropped from the mempool once the configured utilisation threshold# is reached.drop-priority-threshold = 0.1# Defines the mempool utilisation level (expressed as a percentage in# the range [0.0, 1.0]) above which transactions will be selectively# dropped based on their priority hint.## For example, if this parameter is set to 0.8, then once the mempool reaches# 80% capacity, transactions with priority hints below drop-priority-threshold# percentile will be dropped to make room for new transactions.drop-utilisation-threshold = 1# Defines the size of the reservoir for keeping track# of the distribution of transaction priorities in the mempool.## This is used to determine the priority threshold below which transactions will# be dropped when the mempool utilisation exceeds drop-priority-threshold.## The reservoir is a statistically representative sample of transaction# priorities in the mempool, and is used to estimate the priority distribution# without needing to store all transaction priorities.## A larger reservoir size will yield a more accurate estimate of the priority# distribution, but will consume more memory.## The default value of 10,240 is a reasonable compromise between accuracy and# memory usage for most use cases. It takes approximately 80KB of memory storing# int64 transaction priorities.## See DropUtilisationThreshold and DropPriorityThreshold.drop-priority-reservoir-size = 10240########################################################################## State Sync Configuration Options ##########################################################################[statesync]# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in# the network to take and serve state machine snapshots. State sync is not attempted if the node# has any local state (LastBlockHeight > 0). The node will have a truncated block history,# starting from the height of the snapshot.enable = false# 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 = 0trust-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"# Whether to use local snapshot only for state sync or not.# If this is true, then state sync will look for existing snapshots# which are located in the snapshot-dir configured in app.toml (default to [home-dir]/data/snapshots)use-local-snapshot = false# Advanced state-sync tuning knobs are intentionally omitted from this template:# - backfill-blocks, backfill-duration: post-sync historical light-block backfill# - discovery-time, temp-dir: snapshot discovery and chunk staging# - chunk-request-timeout, fetchers: chunk transfer behavior# - verify-light-block-timeout, blacklist-ttl: light client verification# They are still parsed if set explicitly here; see the Sei docs for the full list# and recommended values.########################################################################## Consensus Configuration Options ##########################################################################[consensus]wal-file = "data/tendermint/cs.wal/wal"# 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.# 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# EmptyBlocks mode and possible interval between empty blockscreate-empty-blocks = truecreate-empty-blocks-interval = "0s"# Only gossip hashes, not the actual datagossip-tx-key-only = "true"# Reactor sleep duration parameterspeer-gossip-sleep-duration = "100ms"peer-query-maj23-sleep-duration = "2s"########################################################################## Transaction Indexer Configuration (Auto-managed) ##########################################################################[tx-index]# 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.## Options:# 1) "null" (default) - no indexer services.# 2) "kv" - a simple indexer backed by key-value storage (see DBBackend)# 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"]# The PostgreSQL connection configuration, the connection format:# postgresql://<user>:<password>@<host>:<port>/<db>?<opts>psql-conn = ""########################################################################## Instrumentation Configuration (Auto-managed) ##########################################################################[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) connectionsprometheus-listen-addr = ":26660"# Maximum number of scrapes served concurrently. Not a socket limit despite the# name: requests past it receive a 503 rather than being queued. Keep it above# the number of scrapers that can overlap (an HA Prometheus pair, probes, a human# curl) — a slow reader holds a slot until it finishes or times out.# 0 - unlimited.max-open-connections = 3########################################################################## Priv Validator Configuration (Auto-managed) ##########################################################################[priv-validator]# Path to the JSON file containing the private key to use as a validator in the consensus protocolkey-file = "config/priv_validator_key.json"# Path to the JSON file containing the last sign state of a validatorstate-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 Clientladdr = ""# 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 insecureclient-certificate-file = ""# Client key generated while creating certificates for secure connectionclient-key-file = ""# Path to the Root Certificate Authority used to sign both client and server certificatesroot-ca-file = ""########################################################################## SelfRemediation Configuration (Auto-managed) ##########################################################################[self-remediation]# If the node has no p2p peers available then trigger a restart# Set to 0 to disablep2p-no-peers-available-window-seconds = 0# If node has no peers for statesync after a period of time then restart# Set to 0 to disablestatesync-no-peers-available-window-seconds = 0# Threshold for how far back the node can be behind the current block height before triggering a restart# Set to 0 to disableblocks-behind-threshold = 0# How often to check if node is behindblocks-behind-check-interval = 60# Cooldown between each restartrestart-cooldown-seconds = 600
Out-of-process Application Blockchain Interface (ABCI) support has been
removed. The node runs only with Tendermint in-process. As a result, the legacy
proxy-app and abci base config fields no longer appear in the generated
file and have no effect. When you upgrade, remove any proxy-app and abci
lines from your existing config.toml.
The [p2p] section also accepts max-outbound-connections, which seid init
does not emit. Inbound and outbound connections are managed in separate pools.
This field caps the outbound pool, and the inbound pool is derived as
max-connections - max-outbound-connections. Persistent and unconditional
peers bypass both limits. If the field is unset, it defaults to 20, or to half
of max-connections (rounded up) when max-connections is below 40. If you
set it explicitly, the effective value is
min(max-connections, max-outbound-connections).
The Tendermint mempool was substantially rewritten. A unified transaction store
drives transaction admission, ordering, eviction, and gossip. The store uses
inclusion ordering, soft and hard size limits, and cache-based deduplication.
As a result, node operators may observe different ordering, eviction, and
gossip behavior after they upgrade.A zero ttl-duration or ttl-num-blocks disables that form of TTL purging
entirely. Expired PENDING transactions are always pruned. Expired READY
transactions are pruned when remove-expired-txs-from-queue is true (the
default). The pending-ttl-duration and pending-ttl-num-blocks fields are
deprecated and have no effect. Pending transactions are no longer purged based
on their own TTL.
The [consensus] section also accepts unsafe-overrides-enabled (default
false), which seid init does not emit. The unsafe-*-override timeout
fields take effect only when unsafe-overrides-enabled is true or when the
onchain timeout params still equal the legacy pacific-1 values. The second case
is a backward-compatibility carve-out during migration. Otherwise, the
overrides are ignored, and the onchain (or default) timeout params are used.
CLI and client defaults that seid itself uses (chain ID, keyring backend,
output format, node endpoint).
# This is a TOML config file.# For more information, see https://github.com/toml-lang/toml################################################################################## Client Configuration ################################################################################### The network chain IDchain-id = "pacific-1"# The keyring's backend, where the keys are stored (os|file|kwallet|pass|test|memory)keyring-backend = "os"# CLI output format (text|json)output = "text"# <host>:<port> to Tendermint RPC interface for this chainnode = "tcp://localhost:26657"# Transaction broadcasting mode (sync|async|block)broadcast-mode = "sync"
Sei uses SeiDB to store chain data. SeiDB is a two-layer design that
replaces the legacy single-database IAVL store with separate tiers for hot and
historical data:
State Commit (SC): the active chain state. It is used for transaction
execution and to compute the per-block app hash. Cosmos modules sit on a
memory-mapped Merkle tree (memiavl) ported from Cronos. EVM state can
also be routed through FlatKV, an EVM-tuned PebbleDB store
with per-type sub-databases (account, code, storage, and misc).
Since v6.7.0, nodes run in the auto write mode by default and move EVM
state into FlatKV when governance starts the migration. See the
FlatKV EVM SC migration flow.
State Store (SS): versioned raw key-value pairs for historical
queries. It is required for any node that serves RPC. The default backend is
PebbleDB. Do not use RocksDB for new nodes. If you already use RocksDB,
follow Move off RocksDB before support is removed.
The legacy IAVL backend has been fully removed, and every node runs on SeiDB.
If you set sc-enable = false, the node panics at startup with SeiDB state-commit (SC) must be enabled; IAVL backend has been fully deprecated.
The full set of settings is in the auto-generated
Default configurations above. The block below
covers the values that most node operators tune in practice.
[state-commit]# SeiDB state-commit is mandatory; setting this to false panics at startup.sc-enable = true# Async commit queue. Larger values improve catch-up; 0 = synchronous.sc-async-commit-buffer = 100# Take a state-commit snapshot every N blocks.sc-snapshot-interval = 10000# Minimum wall-clock interval (seconds) between snapshots; prevents overlap# during catch-up. Lower this if you set sc-snapshot-interval below ~5000.sc-snapshot-min-time-interval = 3600# Cap on snapshot write throughput across all trees (MB/s). 0 = unlimited.sc-snapshot-write-rate-mbps = 100# The node runs in the auto write mode by default. It checks that sc-write-mode# has a valid value, but it does not use the value.# To pin a mode, also set sc-write-mode-enable-auto = false. Read the Giga# storage migration guide first.# sc-read-mode and sc-enable-lattice-hash are not seid config keys. Since# v6.7.0, the node also ignores sc-keys-to-migrate-per-block. You can remove# these keys.sc-write-mode = "memiavl_only"[state-commit.flatkv]# FlatKV uses built-in defaults. The only key in this section that the node# applies is enable-read-write-metrics (default false).[state-store]# Historical SS layer. Validators can disable this to save disk; any node# serving RPC must keep it on.ss-enable = true# Use PebbleDB. RocksDB support will be removed.ss-backend = "pebbledb"ss-async-write-buffer = 100# Versions to retain. 0 = keep everything (archive-style). 100,000 ≈ 28h.ss-keep-recent = 100000# Pruning interval, plus a small random jitter, to avoid colliding with# snapshot creation.ss-prune-interval = 600# Optional EVM SS routing — when true, EVM data is routed exclusively to a# dedicated EVM SS backend (no fallback between backends). Leave false# unless you have completed the Giga SS Store migration.evm-ss-split = falseevm-ss-separate-dbs = false[receipt-store]# Supported backends: pebbledb (aka pebble) and littidx. parquet was removed in v6.6.0.# Receipts are pruned together with blocks according to min-retain-blocks above.rs-backend = "pebbledb"async-write-buffer = 100prune-interval-seconds = 600
Small (more frequent) pruning intervals may collide with snapshot creation.
Intervals that are too large (less frequent) make pruning take longer overall.
This can cause missed blocks and excessive resync time.
New PebbleDB state stores use descending-version MVCC encoding. Sei includes
the version in each key and sorts newer versions first. This lets
latest-version reads reach the newest visible value without scanning older
versions. The store records this format with the s/_mvcc_descending sentinel
key, which seid detects automatically when it opens the database.PebbleDB state stores created by older builds use ascending-version encoding.
seid detects these stores and opens them in compatibility mode without an
error. They remain on the slower ascending read path. To adopt descending
encoding, rebuild the state store through state sync with a
current seid release. A filesystem snapshot preserves the source store’s
encoding, so confirm its encoding with the snapshot provider.
Check the Sei release notes before every upgrade. RocksDB support for the SeiDB state store will be removed. No target release has been published.
RocksDB and PebbleDB use different on-disk formats. Changing
ss-backend = "rocksdb" to ss-backend = "pebbledb" on the same data
does not convert the store. Rebuild the state store instead.For a non-archive node:
Stop seid. Then back up the validator key, validator state, node key,
configuration, and genesis file that you need to preserve.
Check ss-db-directory and evm-ss-db-directory in app.toml. An empty
value uses a path under $HOME/.sei/data. If either setting points
elsewhere, move the old RocksDB data out of the active path. Keep it with
the backup. Clearing $HOME/.sei/data does not clear a custom directory.
Confirm that the startup log reports "SeiDB SS is enabled" with the
PebbleDB backend. Before you delete the old RocksDB backup, test the RPC
methods that your node serves.
Do not use state sync or a pruned snapshot to migrate an archive node. Both start from a recent height and discard the earlier state-store versions that an archive node must retain.
There is no documented in-place migration for a RocksDB archive node. Build a
separate replacement from a trusted full-history PebbleDB source. Keep the
RocksDB node on a compatible seid release until the replacement has caught
up and you have tested historical queries at old heights. If you cannot get
a full-history PebbleDB source, do not wipe the existing archive data. Contact
the Sei Tech Chat before you upgrade.PebbleDB can be slower for iteration-heavy historical queries, including
debug_trace* requests. Descending-version encoding improves recent reads,
but it does not remove the cost of long-history iteration. Before you cut over,
benchmark the replacement under your trace workload.
These are two separate features that ship in newer seid releases.Giga Storage repartitions SeiDB so that EVM state lives in its own
databases at both the SC and SS layers. This frees non-EVM modules from EVM
write amplification.
For step-by-step instructions, see the Giga SS Store Migration Guide. The guide includes the full state sync flow, startup verification, safety checks, and rollback. The snippet below shows only the resulting app.toml shape.
[state-store]# Route EVM data to a dedicated EVM SS backend (Giga SS Store migration).evm-ss-split = true
The SC layer has its own, separate migration path, which governance controls.
Before you change sc-write-mode or sc-write-mode-enable-auto, see the
FlatKV EVM SC migration flow.Enabling Giga Storage requires a fresh state sync. If you flip evm-ss-split
on a node with existing data, the node fails the startup safety checks. This
is because the new EVM SS DB starts empty while Cosmos SS already has history.
The full procedure is in the
Giga SS Store Migration Guide. The procedure
is currently supported on RPC nodes only. Validators and archive nodes are
not yet covered.Giga Executor is independent of Giga Storage. From the v6.6 release line,
newly generated configurations and configurations that omit these fields
default to the Giga execution path with OCC enabled. To opt out, set both
fields explicitly to false. Before you change either setting, follow the
release-specific operator instructions:
[giga_executor]# Use the Giga execution path.# Default: true.enabled = true# Run Giga-executed txs in parallel with Optimistic Concurrency Control.# Default: true.occ_enabled = true
The database is typically stable and can be left alone. However, it may need
some attention:
# Check database sizedu -sh $HOME/.sei/data/# Confirm correct file paths as per your own setup before proceeding.# Back up the data directory BEFORE wiping it:cp -r $HOME/.sei/data/ $HOME/sei-backup-$(date +%Y%m%d)/# Your keys and config live in $HOME/.sei/config and are NOT removed by the# wipe below, but keep them safe regardless:# - `node_key.json`: Preserves node identity to maintain peer connections.# - `priv_validator_key.json`: Critical for validators; losing this key results in double signing risks.# - `config.toml` & `app.toml`: Retains node-specific configuration.# - `genesis.json`: Required for correct chain initialization.# Wipe database for a fresh resync (destructive — deletes all chain data# except priv_validator_state.json)find $HOME/.sei/data/ -mindepth 1 ! -name 'priv_validator_state.json' -delete && rm -rf $HOME/.sei/wasm
After you run the wipe command above, resync the node from a snapshot or through state sync. Until then, the node cannot serve traffic. The command deletes the entire local database (everything except priv_validator_state.json) and the wasm folder. It does not compact data in place.
Upgrade with the same method that you used for the original install. The
make install command writes seid to $(go env GOPATH)/bin, but the
prebuilt-binary flow installs to /usr/local/bin. If you mix the two,
separate binaries stay on your PATH, and your service unit may keep running
the old version. The which -a seid command lists every copy.
The results of performance optimizations can vary with your system’s hardware,
workload, and network conditions. Before you make any changes, research them
and test them in a controlled environment. Make sure that they fit your
specific configuration and requirements. Always back up important data before
you make changes.
Tuning memory management settings can help improve performance and stability,
particularly for high-load nodes. These settings control swap usage and the
handling of dirty (unwritten) pages in RAM.
vm.swappiness = 1 # Reduce swapping to disk, ensuring RAM is used efficiently before relying on slower swap spacevm.dirty_background_ratio = 3 # The percentage of system memory that can be filled with "dirty" pages before background writing beginsvm.dirty_ratio = 10 # The maximum percentage of system memory that can be filled with "dirty" pages before a full flush is triggeredvm.dirty_expire_centisecs = 300 # Time (in hundredths of a second) before dirty data is written to diskvm.dirty_writeback_centisecs = 100 # Frequency (in hundredths of a second) at which the system writes "dirty" pages to disk
Tuning the network stack can improve packet processing efficiency and
throughput, particularly for nodes that handle many peers and high
transaction volume.
net.core.somaxconn = 32768 # max connections in queuednet.core.netdev_max_backlog = 32768 # packets allowed in queue before dropping incoming packetsnet.ipv4.tcp_max_syn_backlog = 16384 # outstanding SYN requests (half-open connections) allowed before dropping new connectionsnet.core.rmem_max = 16777216 # receive buffer size for network socketsnet.core.wmem_max = 16777216 # send buffer size for network sockets
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Sei Docs","description":"Official documentation for Sei — the high-performance EVM blockchain with sub-second finality, parallel execution, and full Ethereum compatibility.","colors":{"primary":"#600014","light":"#b99ba1","dark":"#34050d"},"logo":{"light":"https://mintcdn.com/seilabs/KM_kZG8zqelKUw6O/logo/light.svg?fit=max\u0026auto=format\u0026n=KM_kZG8zqelKUw6O\u0026q=85\u0026s=1f2c5a9b7231bea8694c23e8043c5ce5","dark":"https://mintcdn.com/seilabs/KM_kZG8zqelKUw6O/logo/dark.svg?fit=max\u0026auto=format\u0026n=KM_kZG8zqelKUw6O\u0026q=85\u0026s=2104f0f447a64c696dda722d11262d40","href":"/"},"favicon":{"light":"https://mintcdn.com/seilabs/KM_kZG8zqelKUw6O/favicon.svg?fit=max\u0026auto=format\u0026n=KM_kZG8zqelKUw6O\u0026q=85\u0026s=e7ccdf171c842892541c4ecb96adc119","dark":"https://mintcdn.com/seilabs/KM_kZG8zqelKUw6O/favicon.svg?fit=max\u0026auto=format\u0026n=KM_kZG8zqelKUw6O\u0026q=85\u0026s=e7ccdf171c842892541c4ecb96adc119"},"api":{"playground":{"display":"interactive"}},"appearance":{"default":"dark"},"background":{"color":{"light":"#f5f5f7","dark":"#000000"}},"navbar":{"links":[{"href":"https://github.com/sei-protocol","label":"GitHub"}]},"footer":{"socials":{"x":"https://x.com/SeiNetwork","github":"https://github.com/sei-protocol","discord":"https://discord.com/invite/sei","linkedin":"https://www.linkedin.com/company/sei-foundation","telegram":"https://t.me/seinetwork","website":"https://www.sei.io"},"links":[{"header":"Developers","items":[{"label":"GitHub","href":"https://github.com/sei-protocol"},{"label":"Builder Toolkit","href":"https://sei-foundation.notion.site/Sei-Ecosystem-Builders-Toolkit-836deaebca204452909d0bf9365d8116"},{"label":"Builder Chat","href":"https://t.me/+KZdhZ1eE-G01NmZk"}]},{"header":"Ecosystem","items":[{"label":"Dashboard","href":"https://dashboard.sei.io"},{"label":"Ecosystem Hub","href":"https://www.sei.io/ecosystem"},{"label":"Join the Ecosystem","href":"https://sei-forms.typeform.com/join-ecosystem"},{"label":"Bridge","href":"https://dashboard.sei.io/bridge"},{"label":"Stake","href":"https://dashboard.sei.io/stake"}]},{"header":"Explorers","items":[{"label":"Seiscan","href":"https://seiscan.io"},{"label":"Seistream","href":"https://seistream.app"}]},{"header":"Community","items":[{"label":"X (Twitter)","href":"https://x.com/SeiNetwork"},{"label":"Discord","href":"https://discord.com/invite/sei"},{"label":"Telegram","href":"https://t.me/seinetwork"},{"label":"Blog","href":"https://blog.sei.io"},{"label":"Brand Kit","href":"/learn/general-brand-kit"}]}]},"search":{"prompt":"Search the Sei docs..."},"seo":{"metatags":{"og:site_name":"Sei Docs","twitter:site":"@SeiNetwork","twitter:creator":"@SeiNetwork","twitter:card":"summary_large_image"},"indexing":"navigable"},"fonts":{"family":"Lateral Variable","source":"https://dashboard.sei.io/fonts/Lateral-StandardRegular.woff2","format":"woff2"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","grok","aistudio","mcp","add-mcp","cursor","vscode"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/seilabs/uQW6y0POxDwVedX9/assets/og-template.png?fit=max\u0026auto=format\u0026n=uQW6y0POxDwVedX9\u0026q=85\u0026s=2ff5e66e77f71d754b59f7477451548e"},"interaction":{"drilldown":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"seilabs","hasAudioNarration":false,"actualSubdomain":"seilabs","customDomains":["docs.sei.io"],"gitSource":{"type":"github","owner":"sei-protocol","repo":"sei-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":false,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeb9628640acea4df93aea9","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"EVM","count":79},{"language":"default","tag":"Smart Contracts","count":31},{"language":"default","tag":"Learn","count":28},{"language":"default","tag":"Ecosystem Tutorials","count":20},{"language":"default","tag":"Cookbook","count":19},{"language":"default","tag":"AI","count":18},{"language":"default","tag":"Precompiles","count":18},{"language":"default","tag":"Nodes","count":13},{"language":"default","tag":"Essentials","count":10},{"language":"default","tag":"Node Operations","count":8}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"Lateral Variable\";src:url(\"https://dashboard.sei.io/fonts/Lateral-StandardLight.woff2\") format(\"woff2\"),\n url(\"https://dashboard.sei.io/fonts/Lateral-StandardLight.woff\") format(\"woff\");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:\"Lateral Variable\";src:url(\"https://dashboard.sei.io/fonts/Lateral-StandardRegular.woff2\") format(\"woff2\"),\n url(\"https://dashboard.sei.io/fonts/Lateral-StandardRegular.woff\") format(\"woff\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Lateral Variable\";src:url(\"https://dashboard.sei.io/fonts/Lateral-StandardMedium.woff2\") format(\"woff2\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:\"Lateral Variable\";src:url(\"https://dashboard.sei.io/fonts/Lateral-CondensedBold.woff2\") format(\"woff2\"),\n url(\"https://dashboard.sei.io/fonts/Lateral-CondensedBold.woff\") format(\"woff\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Lateral Condensed\";src:url(\"https://dashboard.sei.io/fonts/Lateral-CondensedMedium.woff2\") format(\"woff2\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:\"Lateral Condensed\";src:url(\"https://dashboard.sei.io/fonts/Lateral-CondensedBold.woff2\") format(\"woff2\"),\n url(\"https://dashboard.sei.io/fonts/Lateral-CondensedBold.woff\") format(\"woff\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Items Text\";src:url(\"https://dashboard.sei.io/fonts/ItemsText-Book.woff2\") format(\"woff2\"),\n url(\"https://dashboard.sei.io/fonts/ItemsText-Book.woff\") format(\"woff\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"ABC Repro Mono\";src:url(\"https://dashboard.sei.io/fonts/ABCReproMono-Regular.woff2\") format(\"woff2\"),\n url(\"https://dashboard.sei.io/fonts/ABCReproMono-Regular.woff\") format(\"woff\");font-weight:400;font-style:normal;font-display:swap}:root{--sei-black: #000000;--sei-white: #ffffff;--sei-cream: #e6d4c3;--sei-grey-25: #f5f5f7;--sei-grey-30: #ececee;--sei-grey-50: #cccccc;--sei-grey-75: #999999;--sei-grey-100: #999999;--sei-grey-200: #666666;--sei-grey-300: #333333;--sei-grey-400: #333333;--sei-grey-600: #131313;--sei-maroon-25: #b99ba1;--sei-maroon-50: #b05c6c;--sei-maroon-100: #600014;--sei-maroon-200: #34050d;--sei-gold-25: #d6c9ac;--sei-gold-100: #966f22;--sei-gold-200: #5d4a22;--sei-live: #38df00;--sei-error: #fa0c00;--sei-diagram-ok: #1a7a00;--sei-diagram-error: #c20a00;--sei-diagram-warning: #b45309;--sei-diagram-gold: var(--sei-gold-100);--sei-font-body:\n \"Lateral Variable\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n \"Helvetica Neue\", Arial, sans-serif;--sei-font-display:\n \"Lateral Condensed\", \"Lateral Variable\", -apple-system, BlinkMacSystemFont,\n \"Segoe UI\", sans-serif;--sei-font-serif: \"Items Text\", Georgia, \"Times New Roman\", serif;--sei-font-mono:\n \"ABC Repro Mono\", \"SF Mono\", Monaco, \"Cascadia Mono\", \"Roboto Mono\", Menlo,\n Courier, monospace;--sei-radius-sm: 2px;--sei-radius-md: 4px;--sei-card-bg-light: #ffffff;--sei-card-bg-dark: #000000;--sei-card-border-light: #ececee;--sei-card-border-dark: #1f1f1f;--sei-card-divider-light: #ececee;--sei-card-divider-dark: #262626;--sei-page-bg-light: #f5f5f7;--sei-page-bg-dark: #000000;--sei-page-px: 24px;--sei-sidebar-w: 220px;--sei-gutter: 40px;--sei-toc-w: 180px;--sei-layout-max: 1536px}.dark{color-scheme:dark;--sei-diagram-ok: #10b981;--sei-diagram-error: #ef4444;--sei-diagram-warning: #f59e0b;--sei-diagram-gold: var(--sei-gold-25)}html,body{font-family:var(--sei-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"ss01\", \"cv11\"}code,kbd,pre,samp,.font-mono,[class*=\"font-mono\"]{font-family:var(--sei-font-mono)!important}h1,h2,h3,h4,h5,h6,.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:var(--sei-font-body);letter-spacing:-0.015em;font-weight:700}h1,.prose h1{font-family:var(--sei-font-display);letter-spacing:-0.02em;font-weight:700}h2,.prose h2{font-family:var(--sei-font-display);letter-spacing:-0.015em;font-weight:700}.sei-eyebrow,[class*=\"eyebrow\"]{font-family:var(--sei-font-mono);text-transform:uppercase;font-size:10px;letter-spacing:0.04em;color:var(--sei-gold-100);font-weight:400}.dark .sei-eyebrow,.dark [class*=\"eyebrow\"]{color:var(--sei-gold-25)}.card{border-radius:var(--sei-radius-sm)!important;border:1px solid var(--sei-card-border-light)!important;background:var(--sei-card-bg-light)!important;transition:background-color 0.15s ease,\n border-color 0.15s ease!important;position:relative;overflow:hidden}.dark .card{border-color:var(--sei-card-border-dark)!important;background:var(--sei-card-bg-dark)!important}.card:hover{border-color:rgba(96, 0, 20, 0.35)!important;background:rgba(96, 0, 20, 0.02)!important}.dark .card:hover{border-color:rgba(185, 155, 161, 0.25)!important;background:rgba(96, 0, 20, 0.08)!important}.card h2,.card h3,.card h4{letter-spacing:-0.015em!important;font-weight:700!important}.card-group,.columns{gap:12px!important}.callout{border-radius:var(--sei-radius-sm)!important;border-width:1px!important;border-left-width:3px!important;padding:14px 18px!important;font-size:14px!important;line-height:1.55!important}.callout>div:not([data-component-part=\"callout-icon\"]){color:var(--sei-grey-600)!important}.dark .callout>div:not([data-component-part=\"callout-icon\"]){color:var(--sei-grey-25)!important}.callout[data-callout-type=\"info\"]{background:rgba(128, 128, 128, 0.06)!important;border-color:rgba(128, 128, 128, 0.18)!important;border-left-color:var(--sei-grey-200)!important}.callout[data-callout-type=\"info\"] [data-component-part=\"callout-icon\"] svg{color:var(--sei-grey-200)!important}.dark .callout[data-callout-type=\"info\"]{background:rgba(128, 128, 128, 0.09)!important;border-color:rgba(128, 128, 128, 0.2)!important;border-left-color:var(--sei-grey-75)!important}.dark .callout[data-callout-type=\"info\"] [data-component-part=\"callout-icon\"] svg{color:var(--sei-grey-75)!important}.callout[data-callout-type=\"note\"]{background:rgba(59, 130, 246, 0.05)!important;border-color:rgba(59, 130, 246, 0.16)!important;border-left-color:rgb(37, 99, 235)!important}.callout[data-callout-type=\"note\"] [data-component-part=\"callout-icon\"] svg{color:rgb(37, 99, 235)!important}.dark .callout[data-callout-type=\"note\"]{background:rgba(59, 130, 246, 0.08)!important;border-color:rgba(147, 197, 253, 0.16)!important;border-left-color:rgb(147, 197, 253)!important}.dark .callout[data-callout-type=\"note\"] [data-component-part=\"callout-icon\"] svg{color:rgb(147, 197, 253)!important}.callout[data-callout-type=\"tip\"],.callout[data-callout-type=\"check\"]{background:rgba(56, 223, 0, 0.05)!important;border-color:rgba(56, 223, 0, 0.2)!important;border-left-color:#1a7a00!important}.callout[data-callout-type=\"tip\"] [data-component-part=\"callout-icon\"] svg,.callout[data-callout-type=\"check\"] [data-component-part=\"callout-icon\"] svg{color:#1a7a00!important}.dark .callout[data-callout-type=\"tip\"],.dark .callout[data-callout-type=\"check\"]{background:rgba(56, 223, 0, 0.07)!important;border-color:rgba(56, 223, 0, 0.18)!important;border-left-color:var(--sei-live)!important}.dark .callout[data-callout-type=\"tip\"] [data-component-part=\"callout-icon\"] svg,.dark .callout[data-callout-type=\"check\"] [data-component-part=\"callout-icon\"] svg{color:var(--sei-live)!important}.callout[data-callout-type=\"warning\"]{background:rgba(150, 111, 34, 0.06)!important;border-color:rgba(150, 111, 34, 0.2)!important;border-left-color:var(--sei-gold-100)!important}.callout[data-callout-type=\"warning\"] [data-component-part=\"callout-icon\"] svg{color:var(--sei-gold-100)!important}.dark .callout[data-callout-type=\"warning\"]{background:rgba(214, 201, 172, 0.06)!important;border-color:rgba(214, 201, 172, 0.15)!important;border-left-color:var(--sei-gold-25)!important}.dark .callout[data-callout-type=\"warning\"] [data-component-part=\"callout-icon\"] svg{color:var(--sei-gold-25)!important}.callout[data-callout-type=\"danger\"]{background:rgba(96, 0, 20, 0.05)!important;border-color:rgba(96, 0, 20, 0.18)!important;border-left-color:var(--sei-maroon-100)!important}.callout[data-callout-type=\"danger\"] [data-component-part=\"callout-icon\"] svg{color:var(--sei-maroon-100)!important}.dark .callout[data-callout-type=\"danger\"]{background:rgba(96, 0, 20, 0.12)!important;border-color:rgba(185, 155, 161, 0.18)!important;border-left-color:var(--sei-maroon-25)!important}.dark .callout[data-callout-type=\"danger\"] [data-component-part=\"callout-icon\"] svg{color:var(--sei-maroon-25)!important}.prose table,article table,table{border-radius:var(--sei-radius-sm)!important;border-collapse:collapse!important;overflow:hidden}.prose thead,article thead,table thead{background:transparent!important}.prose thead th,article thead th,table thead th{font-family:var(--sei-font-mono)!important;text-transform:uppercase!important;font-size:11px!important;letter-spacing:0.04em!important;font-weight:400!important;color:var(--sei-grey-200)!important;padding-top:10px!important;padding-bottom:10px!important;border-bottom:1px solid var(--sei-card-border-light)!important}.dark .prose thead th,.dark article thead th,.dark table thead th{color:var(--sei-grey-75)!important;border-bottom-color:var(--sei-card-border-dark)!important}.prose tbody td,article tbody td,table tbody td{padding-top:10px!important;padding-bottom:10px!important;font-size:14px!important;border-bottom:1px solid var(--sei-card-border-light)!important}.dark .prose tbody td,.dark article tbody td,.dark table tbody td{border-bottom-color:var(--sei-card-border-dark)!important}.prose tbody tr:last-child td,article tbody tr:last-child td,table tbody tr:last-child td{border-bottom:none!important}.prose td code,article td code,table td code,.prose th code{font-family:var(--sei-font-mono)!important;font-size:0.85em!important;padding:0.1em 0.4em!important;background:rgba(96, 0, 20, 0.06)!important;border:1px solid rgba(96, 0, 20, 0.1)!important;border-radius:var(--sei-radius-sm)!important}.dark .prose td code,.dark article td code,.dark table td code,.dark .prose th code{background:rgba(185, 155, 161, 0.1)!important;border-color:rgba(185, 155, 161, 0.15)!important;color:var(--sei-cream)!important}.prose :not(pre)>code,article :not(pre)>code{font-family:var(--sei-font-mono)!important;font-size:0.88em!important;padding:0.12em 0.4em!important;background:rgba(96, 0, 20, 0.06);border:1px solid rgba(96, 0, 20, 0.1);border-radius:var(--sei-radius-sm);color:var(--sei-maroon-100)}.dark .prose :not(pre)>code,.dark article :not(pre)>code{background:rgba(185, 155, 161, 0.1);border-color:rgba(185, 155, 161, 0.15);color:var(--sei-cream)}.prose h1 code,.prose h2 code,.prose h3 code,.prose h4 code{background:transparent!important;border:none!important;padding:0!important;color:inherit!important}.prose pre,article pre,pre[class*=\"shiki\"],.shiki{border-radius:var(--sei-radius-sm)!important;font-family:var(--sei-font-mono)!important;font-size:13px!important;line-height:1.55!important;border:1px solid var(--sei-card-border-dark)!important}.dark .prose pre,.dark article pre,.dark pre[class*=\"shiki\"],.dark .shiki{background-color:var(--sei-grey-600)!important;border-color:var(--sei-card-border-dark)!important}.code-block,.code-block [class*=\"code-block-background\"]{border-radius:0!important}.code-block pre,.code-block .shiki{border:0!important;border-radius:0!important;background:transparent!important}.dark .code-block pre,.dark .code-block .shiki{background:transparent!important}.dark .code-block [class*=\"code-block-background\"]{background-color:var(--sei-grey-600)!important}.sei-eco-grid figure,.sei-eco-grid figure img{margin:0!important;border-radius:0!important;max-width:none!important}.sei-network-tab{color:#525252!important}.sei-network-tab:hover,.sei-network-tab[data-active=\"true\"]{color:#171717!important}.dark .sei-network-tab{color:#a3a3a3!important}.dark .sei-network-tab:hover,.dark .sei-network-tab[data-active=\"true\"]{color:#ffffff!important}.sei-faucet-verify{color:#525252!important}.sei-faucet-verify[data-verified=\"true\"]{color:#15803d!important}.dark .sei-faucet-verify{color:#a3a3a3!important}.dark .sei-faucet-verify[data-verified=\"true\"]{color:#4ade80!important}.prose a:not([class*=\"card\"]):not([class*=\"button\"]),article a:not([class*=\"card\"]):not([class*=\"button\"]){color:var(--sei-maroon-100);text-decoration:none;border-bottom:1px solid rgba(96, 0, 20, 0.25);transition:color 0.15s ease,\n border-color 0.15s ease}.prose a:not([class*=\"card\"]):not([class*=\"button\"]):hover,article a:not([class*=\"card\"]):not([class*=\"button\"]):hover{color:var(--sei-maroon-200);border-bottom-color:var(--sei-maroon-100)}.dark .prose a:not([class*=\"card\"]):not([class*=\"button\"]),.dark article a:not([class*=\"card\"]):not([class*=\"button\"]){color:var(--sei-maroon-25);border-bottom-color:rgba(185, 155, 161, 0.4)}.dark .prose a:not([class*=\"card\"]):not([class*=\"button\"]):hover,.dark article a:not([class*=\"card\"]):not([class*=\"button\"]):hover{color:var(--sei-cream);border-bottom-color:var(--sei-cream)}.prose h1 a[href^=\"#\"],.prose h2 a[href^=\"#\"],.prose h3 a[href^=\"#\"],.prose h4 a[href^=\"#\"]{border-bottom:none!important}.steps [class*=\"step-indicator\"]{background-color:var(--sei-maroon-100)!important;color:var(--sei-white)!important;border-radius:var(--sei-radius-sm)!important}.dark .steps [class*=\"step-indicator\"]{background-color:var(--sei-maroon-200)!important;color:var(--sei-cream)!important}[role=\"tab\"][aria-selected=\"true\"],[role=\"tab\"][data-state=\"active\"]{color:var(--sei-maroon-100)!important;border-color:var(--sei-maroon-100)!important}.dark [role=\"tab\"][aria-selected=\"true\"],.dark [role=\"tab\"][data-state=\"active\"]{color:var(--sei-maroon-25)!important;border-color:var(--sei-maroon-25)!important}.code-group [role=\"tab\"][aria-selected=\"true\"],.code-group [role=\"tab\"][data-state=\"active\"],.codeblock-dark [role=\"tab\"][aria-selected=\"true\"],.codeblock-dark [role=\"tab\"][data-state=\"active\"]{color:var(--sei-maroon-25)!important;border-color:var(--sei-maroon-25)!important}@media (min-width: 1024px){div:has(>#sidebar){max-width:var(--sei-layout-max)!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:var(--sei-page-px)!important}#sidebar{width:var(--sei-sidebar-w)!important;min-width:var(--sei-sidebar-w)!important;left:0!important;margin-left:0!important}#content-area{flex:1 1 0%!important;width:auto!important;min-width:0!important;margin-left:0!important;margin-right:0!important;padding-left:var(--sei-gutter)!important;padding-right:var(--sei-gutter)!important}#content-container>div:has(>#content-area){gap:0!important}}@media (min-width: 1280px){#content-side-layout{flex:0 0 var(--sei-toc-w)!important;width:var(--sei-toc-w)!important;min-width:var(--sei-toc-w)!important;max-width:var(--sei-toc-w)!important}#table-of-contents-layout{width:100%!important;min-width:0!important;max-width:none!important;padding-left:0!important}}#footer{margin-left:0!important;width:100%!important;max-width:100%!important}#footer>div{width:100%!important;max-width:var(--sei-layout-max)!important}@media (min-width: 1024px){#footer>div{padding-left:var(--sei-page-px)!important;padding-right:var(--sei-page-px)!important}}#content-area>header{border-bottom:1px solid var(--sei-card-border-light);padding-bottom:12px}.dark #content-area>header{border-bottom-color:var(--sei-card-divider-dark)}#sidebar-content [class*=\"bg-gradient-to-b\"]{display:none!important}#sidebar-content{padding-left:calc(var(--sei-page-px) - 1rem)!important;padding-right:8px!important;padding-top:16px!important}#sidebar-content [data-component-part=\"scroll-area-viewport\"]{padding-right:8px!important}#sidebar,#sidebar-content{font-size:12px;letter-spacing:-0.005em;line-height:1.25}#sidebar a,#sidebar button{padding-right:4px!important;border-radius:var(--sei-radius-sm)!important;min-height:0!important;line-height:1.3!important;transition:background-color 0.12s ease,\n color 0.12s ease}#sidebar button[aria-expanded]{padding-top:4px!important;padding-bottom:4px!important}#sidebar .sidebar-group-header{margin-top:10px!important;margin-bottom:4px!important}#sidebar .sidebar-title{font-family:var(--sei-font-mono)!important;text-transform:uppercase!important;font-size:10px!important;letter-spacing:0.08em!important;color:var(--sei-gold-100)!important;font-weight:400!important;line-height:1.2!important}.dark #sidebar .sidebar-title{color:var(--sei-gold-25)!important}#sidebar a[aria-current=\"page\"]{background-color:rgba(96, 0, 20, 0.08)!important;color:var(--sei-maroon-100)!important;font-weight:500!important;border-left:2px solid var(--sei-maroon-100)!important}.dark #sidebar a[aria-current=\"page\"]{background-color:rgba(185, 155, 161, 0.08)!important;color:var(--sei-maroon-25)!important;border-left-color:var(--sei-maroon-25)!important}#navbar{border-bottom:1px solid rgba(0, 0, 0, 0.08)}.dark #navbar{border-bottom-color:var(--sei-grey-300)}@media (min-width: 1024px){#navbar>div:not(#navbar-transition){max-width:var(--sei-layout-max)!important;margin-left:auto!important;margin-right:auto!important}#navbar div:has(>div>div>#search-bar-entry),#navbar div:has(>.nav-tabs){margin-left:0!important;margin-right:0!important;padding-left:var(--sei-page-px)!important;padding-right:var(--sei-page-px)!important}}#navbar a{font-size:13px;letter-spacing:-0.005em}#navbar a[class*=\"button-primary\"],#navbar button[class*=\"primary\"]{background-color:var(--sei-maroon-100)!important;color:var(--sei-white)!important;border:1px solid var(--sei-maroon-100)!important;border-radius:var(--sei-radius-sm)!important;font-weight:500;transition:background-color 0.15s ease}#navbar a[class*=\"button-primary\"]:hover,#navbar button[class*=\"primary\"]:hover{background-color:var(--sei-maroon-200)!important;border-color:var(--sei-maroon-200)!important}.dark #navbar a[class*=\"button-primary\"],.dark #navbar button[class*=\"primary\"]{color:var(--sei-cream)!important}.toc-item a{font-size:12.5px!important;letter-spacing:-0.005em;color:var(--sei-grey-200);transition:color 0.12s ease}.dark .toc-item a{color:var(--sei-grey-75)}.toc-item a:hover{color:var(--sei-maroon-100)}.dark .toc-item a:hover{color:var(--sei-maroon-25)}.toc-item a[aria-current]{color:var(--sei-maroon-100)!important;border-left:2px solid var(--sei-maroon-100)}.dark .toc-item a[aria-current]{color:var(--sei-maroon-25)!important;border-left-color:var(--sei-maroon-25)}input[type=\"search\"],[class*=\"search\"] input{font-family:var(--sei-font-body)!important;border-radius:var(--sei-radius-sm)!important;border:1px solid rgba(0, 0, 0, 0.12)!important;background-color:var(--sei-grey-25)!important}.dark input[type=\"search\"],.dark [class*=\"search\"] input{background-color:var(--sei-grey-600)!important;border-color:var(--sei-grey-300)!important;color:var(--sei-white)!important}input[type=\"search\"]:focus,[class*=\"search\"] input:focus{outline:2px solid var(--sei-maroon-100);outline-offset:-1px;border-color:transparent!important}.dark input[type=\"search\"]:focus,.dark [class*=\"search\"] input:focus{outline-color:var(--sei-maroon-25)}mark,[class*=\"search\"] mark,[class*=\"highlight\"]{background-color:rgba(96, 0, 20, 0.2)!important;color:inherit!important;padding:0.1em 0.2em;border-radius:var(--sei-radius-sm)}.dark mark{background-color:rgba(185, 155, 161, 0.35)!important}.prose blockquote:not([class*=\"callout\"]),article blockquote:not([class*=\"callout\"]){border-left:3px solid var(--sei-maroon-100);background:rgba(96, 0, 20, 0.04);padding:14px 18px;border-radius:var(--sei-radius-sm);font-style:normal;color:var(--sei-grey-200)}.dark .prose blockquote:not([class*=\"callout\"]),.dark article blockquote:not([class*=\"callout\"]){border-left-color:var(--sei-maroon-25);background:rgba(96, 0, 20, 0.1);color:var(--sei-grey-75)}.prose hr,article hr,hr{border:none;border-top:1px solid var(--sei-card-border-light);margin:2.5rem 0}.dark .prose hr,.dark article hr,.dark hr{border-top-color:var(--sei-card-border-dark)}details,[class*=\"accordion\"]{border:1px solid var(--sei-card-border-light)!important;border-radius:var(--sei-radius-sm)!important;background:transparent!important}.dark details,.dark [class*=\"accordion\"]{border-color:var(--sei-card-border-dark)!important}summary,[class*=\"accordion\"] summary,[class*=\"accordion\"] button[aria-expanded]{padding:12px 16px!important;font-weight:500!important;letter-spacing:-0.01em!important;cursor:pointer}summary:hover,[class*=\"accordion\"] button[aria-expanded]:hover{background:rgba(96, 0, 20, 0.03)!important}.dark summary:hover,.dark [class*=\"accordion\"] button[aria-expanded]:hover{background:rgba(185, 155, 161, 0.05)!important}[class*=\"Frame\"],.frame,figure{border-radius:var(--sei-radius-sm)!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(0, 0, 0, 0.15);border-radius:3px}.dark ::-webkit-scrollbar-thumb{background:rgba(255, 255, 255, 0.12)}::-webkit-scrollbar-thumb:hover{background:rgba(96, 0, 20, 0.4)}.dark ::-webkit-scrollbar-thumb:hover{background:rgba(185, 155, 161, 0.3)}.chat-assistant-floating-input{display:none!important}"}],"page":{"pagePath":"node/node-operators","slug":"/node/node-operators","pageMetadata":{"title":"Sei Node Operations Guide","sidebarTitle":"Overview","description":"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.","keywords":["sei node","blockchain node","node configuration","seidb","node maintenance","system operations","rocksdb"],"href":"/node/node-operators"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Danger,Heading,Info,Note,Tab,Tabs,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Danger)_missingMdxReference(`Danger`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`This guide covers the details of running a Sei node, including configuration\nmanagement, maintenance procedures, and best practices for stable,\nhigh-performance operation.`}),`\n`,_jsx(Heading,{level:`2`,id:`configuration-management`,children:`Configuration management`}),`\n`,_jsx(Heading,{level:`3`,id:`directory-structure`,children:`Directory structure`}),`\n`,_jsxs(_components.p,{children:[`The Sei node configuration is stored in `,_jsx(_components.code,{children:`$HOME/.sei/config/`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`/.sei/config/`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` app.toml`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Application configuration (gas fees, API settings, pruning, etc.)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` config.toml`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Core Tendermint settings (network, consensus, and RPC)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` client.toml`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # CLI and client-related settings`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` genesis.json`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Chain genesis file, defines initial state`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` node_key.json`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Unique node identity key for peer-to-peer (P2P) networking`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`└──`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` priv_validator_key.json`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Validator private signing key (if running as a validator)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The state-store databases live outside the config directory:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Cosmos SS uses `,_jsx(_components.code,{children:`$HOME/.sei/data/{backend}`}),` in the legacy layout and\n`,_jsx(_components.code,{children:`$HOME/.sei/data/state_store/cosmos/{backend}`}),` in the current layout.`]}),`\n`,_jsxs(_components.li,{children:[`EVM SS uses `,_jsx(_components.code,{children:`$HOME/.sei/data/evm_ss`}),` in the legacy layout and\n`,_jsx(_components.code,{children:`$HOME/.sei/data/state_store/evm/{backend}`}),` in the current layout.`]}),`\n`,_jsxs(_components.li,{children:[`Non-empty `,_jsx(_components.code,{children:`ss-db-directory`}),` and `,_jsx(_components.code,{children:`evm-ss-db-directory`}),` settings override\nthose locations.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The snippets below are opinionated tuning recommendations on top of the\ndefaults. For the `,_jsx(_components.em,{children:`full`}),` unmodified `,_jsx(_components.code,{children:`app.toml`}),`, `,_jsx(_components.code,{children:`config.toml`}),`, and\n`,_jsx(_components.code,{children:`client.toml`}),` files from the latest tagged `,_jsx(_components.code,{children:`seid`}),` release, see\n`,_jsx(_components.a,{href:`#default-configurations`,children:`Default configurations`}),` at the bottom of this\nsection.`]}),`\n`,_jsx(Heading,{level:`3`,id:`essential-configuration-parameters`,children:`Essential configuration parameters`}),`\n`,_jsx(Heading,{level:`4`,id:`network-settings-config-toml`,children:`Network settings (config.toml)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`21`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[p2p]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Public address other nodes use to dial in (host:port)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`external-address`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"your-public-ip:26656\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Local address to listen for incoming P2P connections`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`laddr`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"tcp://0.0.0.0:26656\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Combined inbound + outbound peer limit. Default is 100; raise it for`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:\"# well-connected RPC nodes. (`max-num-inbound-peers` / `max-num-outbound-peers`\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# from older Tendermint configs no longer apply.)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`200`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Per-connection bandwidth caps in bytes/sec. Defaults are 20 MiB/s; raise`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# only if your link can sustain it.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`send-rate`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`20971520`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`recv-rate`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`20971520`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[rpc]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# RPC listen address`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`laddr`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"tcp://0.0.0.0:26657\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of simultaneous connections (HTTP + WS)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-open-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`900`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Transaction confirmation timeout for /broadcast_tx_commit`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`timeout-broadcast-tx-commit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"10s\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`4`,id:`application-settings-app-toml`,children:`Application settings (app.toml)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`38`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`38`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Minimum gas prices to prevent spam transactions`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (mainnet enforces a chain-wide minimum of 0.02usei)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`minimum-gas-prices`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0.02usei\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Block retention for /block, /block_results, etc., and the floor used by`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the receipt store's pruner. 0 disables block pruning.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`min-retain-blocks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Concurrent transaction execution workers. The default is set dynamically`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (2× CPU cores, capped at 128, minimum 10).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`concurrency-workers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Optimistic Concurrency Control for parallel tx execution`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`occ-enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[api]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable the REST/Cosmos API server (port 1317)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-open-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-commit]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# SeiDB state-commit (memiavl + FlatKV) is mandatory. The legacy IAVL backend`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# has been fully removed; if sc-enable is false the node panics at startup with`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# \"SeiDB state-commit (SC) must be enabled; IAVL backend has been fully deprecated\".`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-store]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Historical SS layer for queries. Required for any node serving RPC.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# State-store backend. Use PebbleDB; RocksDB support will be removed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"pebbledb\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 0 = keep everything; 100,000 is roughly 28 hours of pacific-1 history.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-keep-recent`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[receipt-store]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Storage backend for EVM transaction receipts. Supported backends: pebbledb`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (aka pebble) and littidx.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rs-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"pebbledb\"`})]}),`\n`]})})}),`\n`,_jsxs(Note,{children:[_jsxs(_components.p,{children:[`The receipt-store backend accepts `,_jsx(_components.code,{children:`pebbledb`}),` (also called `,_jsx(_components.code,{children:`pebble`}),`) and\n`,_jsx(_components.code,{children:`littidx`}),`. The node rejects an unsupported value, such as `,_jsx(_components.code,{children:`rs-backend = \"parquet\"`}),`\n(or `,_jsx(_components.code,{children:`RECEIPT_BACKEND=parquet`}),`), with the error `,_jsx(_components.code,{children:`unsupported receipt-store backend \"parquet\"; supported: pebbledb, littidx`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`littidx`}),` stores receipt bodies in LittDB and keeps a PebbleDB tag index. With\nthis index, `,_jsx(_components.code,{children:`eth_getLogs`}),` can filter logs without a scan of whole blocks. It uses\nthe same `,_jsx(_components.code,{children:`min-retain-blocks`}),` and `,_jsx(_components.code,{children:`prune-interval-seconds`}),` settings as `,_jsx(_components.code,{children:`pebbledb`}),`.\nIt flushes receipt bodies every few milliseconds and does not write them through\na WAL. A hard crash can therefore lose the newest receipt bodies. A read of a\nlost receipt returns not found.`]}),_jsxs(_components.p,{children:[`In the localnode and rpcnode configuration scripts, if you enable Giga Storage\n(`,_jsx(_components.code,{children:`GIGA_STORAGE=true`}),`) and `,_jsx(_components.code,{children:`RECEIPT_BACKEND`}),` is not set, the receipt backend\ndefaults to `,_jsx(_components.code,{children:`pebble`}),`. The former `,_jsx(_components.code,{children:`receipt-store.tx-index-backend`}),` config field\nhas been removed.`]})]}),`\n`,_jsx(Heading,{level:`3`,id:`default-configurations`,children:`Default configurations`}),`\n`,_jsxs(_components.p,{children:[`This section shows the full unmodified `,_jsx(_components.code,{children:`app.toml`}),`, `,_jsx(_components.code,{children:`config.toml`}),`, and\n`,_jsx(_components.code,{children:`client.toml`}),` files that `,_jsx(_components.code,{children:`seid init`}),` produces with the latest tagged `,_jsx(_components.code,{children:`seid`}),`\nrelease. Use them as the canonical reference for every available setting and\nits default value.`]}),`\n`,_jsxs(Warning,{children:[`Do not use RocksDB for new or resynced nodes. The generated `,_jsx(_components.code,{children:`app.toml`}),` below mirrors the latest tagged release and may still list RocksDB as a state-store option. RocksDB support for the SeiDB state store will be removed. No target release has been published.`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`app.toml`,id:`app-toml`,children:[_jsx(_components.p,{children:`Application-layer configuration: gas, API, gRPC, pruning, SeiDB, EVM, and other settings.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`798`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`798`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This is a TOML config file.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# For more information, see https://github.com/toml-lang/toml`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Base Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The minimum gas prices a validator is willing to accept for processing a`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# transaction. A transaction's fees must meet the minimum of any denomination`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# specified in this config (e.g. 0.25token1;0.0001token2).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`minimum-gas-prices`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0.01usei\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MinRetainBlocks defines the minimum block height offset from the current block`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# for pruning Tendermint blocks. Set to 0 to disable pruning. This only affects`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Tendermint block pruning, not application state (see \"pruning-*\" configs).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`min-retain-blocks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ConcurrencyWorkers defines how many workers to run for concurrent transaction execution.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default is dynamically set to 2x CPU cores, capped at 128, with a minimum of 10.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`concurrency-workers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# occ-enabled defines whether OCC is enabled or not for transaction execution`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`occ-enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# HaltHeight contains a non-zero block height at which a node will gracefully`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# halt and shutdown that can be used to assist upgrades and testing.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Note: Commitment of state will be attempted on the corresponding block.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`halt-height`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# FreezeHeight contains the first block height a full node must not execute.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Query RPC remains available, while transaction and evidence submission,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# mempool gossip, and state sync are disabled from startup.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`freeze-height`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# HaltTime contains a non-zero minimum block time (in Unix seconds) at which`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# a node will gracefully halt and shutdown that can be used to assist upgrades`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# and testing.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Note: Commitment of state will be attempted on the corresponding block.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`halt-time`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# InterBlockCache enables inter-block caching.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`inter-block-cache`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# IndexEvents defines the set of events in the form {eventType}.{attributeKey},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# which informs Tendermint what to index. If empty, all events will be indexed.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Example:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# [\"message.sender\", \"message.recipient\"]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`index-events`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = []`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# CompactionInterval sets (in seconds) the interval between forced levelDB`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# compaction. A value of 0 means no forced levelDB.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default is 0.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`compaction-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### State Sync Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# State sync snapshots allow other nodes to rapidly join the network without replaying historical`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# blocks, instead downloading and applying a snapshot of the application state at a given height.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-sync]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# snapshot-interval specifies the block interval at which local state sync snapshots are`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# taken (0 to disable). Must be a multiple of pruning-keep-every.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`snapshot-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`snapshot-keep-recent`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# snapshot-directory sets the directory for where state sync snapshots are persisted.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# default is empty which will then store under the app home directory same as before.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`snapshot-directory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Query Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Pagination limits on the ABCI and gRPC query path protect the node from expensive`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# store scans by untrusted callers (for example, public RPC clients). Operators tune`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# these values for their deployment, allowlist trusted indexers on Tendermint RPC or`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Cosmos gRPC, or set disable-limits on nodes not exposed to untrusted callers.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[query]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# DisableLimits turns off pagination limits for all query origins. Use only on nodes`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# that are not exposed to untrusted callers.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`disable-limits`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TrustedCIDRs lists caller CIDRs that bypass pagination limits. Matching uses the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# direct TCP peer (Tendermint RPC RemoteAddr or Cosmos gRPC peer address), not`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# forwarded headers. It applies only to abci_query on the Tendermint RPC listener`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# and to queries on grpc.address; REST/LCD on api.address (including grpc-gateway`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# routes) relays queries in-process without caller origin, so trusted-cidrs has no`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# effect there. Trusted indexers using REST should use gRPC or Tendermint RPC, or`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# set disable-limits on nodes not exposed to untrusted callers.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Behind a load balancer or reverse proxy every external client shares the proxy`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# address, so adding the proxy CIDR here bypasses limits for all traffic through`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# that ingress, not just internal indexers.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trusted-cidrs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = []`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxLimit is the maximum page size for untrusted query origins. 0 uses the default.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-limit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxOffset is the maximum offset for untrusted query origins. 0 uses the default.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-offset`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxIterations is the maximum store entries a single untrusted query may scan. 0 uses`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the default. When the budget is exhausted the response is a partial page with next_key;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# total stays 0 even when the client set count_total, so next_key != nil with total == 0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# means the total is unknown rather than zero results.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-iterations`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`11000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### State Commit Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-commit]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable defines if the SeiDB state-commit should be enabled.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defines the SC store directory, if not explicitly set, default to application home directory`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-directory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Max concurrent historical proof queries (RPC /store path)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-historical-proof-max-inflight`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Historical proof query rate limit in req/sec (\u003c=0 disables rate limiting)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-historical-proof-rate-limit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Historical proof query burst size`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-historical-proof-burst`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# AsyncCommitBuffer defines the size of asynchronous commit queue, this greatly improve block catching-up`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# performance, setting to 0 means synchronous commit.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-async-commit-buffer`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# KeepRecent defines how many state-commit snapshots (besides the latest one) to keep.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defaults to 1: a configured value of 0 is overridden to 1.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-keep-recent`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# SnapshotInterval defines the block interval the snapshot is taken, default to 10000 blocks.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-snapshot-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# SnapshotMinTimeInterval defines the minimum time interval (in seconds) between snapshots.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This prevents excessive snapshot creation during catch-up and ensures snapshots don't overlap`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (current snapshot creation takes 3+ hours). Default to 3600 seconds (1 hour).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Note: If you set a small sc-snapshot-interval (e.g., \u003c 5000), you may want to reduce this value`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# to allow more frequent snapshots during normal operation.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-snapshot-min-time-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`3600`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# SnapshotPrefetchThreshold defines the page cache residency threshold (0.0-1.0) to trigger snapshot prefetch.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Prefetch sequentially reads nodes/leaves files into page cache for faster cold-start replay.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Only active trees (evm/bank/acc/wasm) are prefetched, skipping sparse kv files to save memory.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Skips prefetch if more than threshold of pages already resident (e.g., 0.8 = 80%).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defaults to 0.8`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-snapshot-prefetch-threshold`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0.8`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum snapshot write rate in MB/s (global across all trees). 0 = unlimited. Default 100.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-snapshot-write-rate-mbps`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# sc-write-mode is the write routing mode. By default it is IGNORED: the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# advanced, unrendered state-commit.sc-write-mode-enable-auto defaults to true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# which forces the node to run in auto regardless of this value. In auto the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# effective mode is derived from the on-disk migration state and advanced by the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# NumKeysToMigratePerBlock gov param, so the node follows a governance-driven EVM`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# migration with no edits here.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# To pin an explicit mode (memiavl_only, flatkv_only, evm_migrated,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# test_only_dual_write, ...) you MUST also set`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# state-commit.sc-write-mode-enable-auto = false; only then is this value`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# honored. A pinned node does not participate in a governance-driven migration`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# and diverges from the network once the chain migrates (e.g. auto left enabled`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# on a flatkv_only-style node would either fail every commit with a`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# version-mismatch error or silently serve reads from an empty memiavl).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Valid values: memiavl_only, migrate_evm, evm_migrated, migrate_all_but_bank,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# all_migrated_but_bank, migrate_bank, flatkv_only, test_only_dual_write, auto.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-write-mode`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"memiavl_only\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# HashLogger records a per-block CSV of named hashes (memIAVL module/root hashes, flatKV DB/root`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# hashes, the app hash, the block hash, and the changeset hash) so block-hash computation can be`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# studied and compared across nodes. It is a debugging/forensics tool; enabled by default.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-hash-logger-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Directory for hash log files. If empty, defaults to a \"hash.log\" directory under the SC store's data`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# directory (i.e. \u003chome>/data/hash.log).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-hash-logger-directory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Number of most-recent blocks to retain on disk. 0 disables block-count retention (disk-size cap only).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-hash-logger-blocks-to-retain`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Size in bytes a hash log file may reach before it is sealed and rotated. Must be > 0.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-hash-logger-target-file-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`16777216`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Backstop cap in bytes on the total size of sealed hash log files. 0 disables the disk-size cap`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (block-count retention only).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-hash-logger-max-disk-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`17179869184`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### FlatKV (EVM) Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-commit.flatkv]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# FlatKV runs with in-code defaults for now; no options are exposed here yet.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### State Store Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-store]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable defines whether the state-store should be enabled for storing historical data.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Supporting historical queries or exporting state snapshot requires setting this to true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This config only take effect when SeiDB is enabled (sc-enable = true)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defines the directory to store the state store db files`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If not explicitly set, default to application home directory`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-db-directory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# DBBackend defines the backend database used for state-store.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Supported backends: pebbledb, rocksdb`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# defaults to pebbledb (recommended)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"pebbledb\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# AsyncWriteBuffer defines the async queue length for commits to be applied to State Store`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set \u003c= 0 for synchronous writes, which means commits also need to wait for data to be persisted in State Store.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# defaults to 100 for asynchronous writes`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-async-write-buffer`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# KeepRecent defines the number of versions to keep in state store`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Setting it to 0 means keep everything`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default to keep the last 100,000 blocks`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-keep-recent`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# PruneInterval defines the minimum interval in seconds + some random delay to trigger SS pruning.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# It is recommended to trigger pruning less frequently with a large interval.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# default to 600 seconds`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-prune-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`600`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ImportNumWorkers defines the concurrency for state sync import`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# defaults to 1`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-import-num-workers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EnableReadWriteMetrics emits estimated PebbleDB MVCC read/write counters.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Applies when ss-backend = \"pebbledb\". Default: false.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-enable-read-write-metrics`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# SnapshotEnable turns on periodic online state-store snapshots. The cadence is`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# not configurable here: it mirrors the state-commit snapshot settings.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Two configurations fail startup rather than run without snapshots: an`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ss-backend other than \"pebbledb\", and any SS database that cannot hardlink into`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# its own snapshot root.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Each retained snapshot pins the SST files it references against compaction, so`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# budget the write churn of one snapshot interval per retained snapshot. This is`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# substantial on a multi-TB state store.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Snapshot directories are rollback restore points, not an archive format.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# They have no lease, so do not build tools that resolve one and open it later.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Cost and progress are exported as ss_snapshot_* metrics. Default: false.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-snapshot-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EVMDBDirectory defines the directory for the optional EVM state-store DB(s).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If unset, defaults to \u003chome>/data/evm_ss when EVM SS is enabled.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`evm-ss-db-directory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EVMSplit controls whether EVM data is routed to a dedicated SS backend.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When false (default), EVM data lives in the Cosmos SS backend alongside`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# everything else. When true, EVM data is routed exclusively to the EVM SS`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# backend; non-EVM data stays in Cosmos SS. No fallback between backends.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`evm-ss-split`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# SeparateEVMSubDBs controls whether EVM data is split across per-type DBs.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When false, all EVM data stays in one DB using the current unified layout.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When true, data is routed to separate DBs while preserving the same evm key prefix format.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`evm-ss-separate-dbs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Receipt Store Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[receipt-store]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Backend defines the receipt store backend.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Supported backends: pebble (aka pebbledb)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# defaults to pebbledb`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rs-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"pebbledb\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defines the receipt store directory. If unset, defaults to \u003chome>/data/ledger/receipt/{backend}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`db-directory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# AsyncWriteBuffer defines the async queue length for commits to be applied to receipt store.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Applies only when rs-backend = \"pebbledb\".`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set \u003c= 0 for synchronous writes.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# defaults to 100`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`async-write-buffer`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# PruneIntervalSeconds defines the interval in seconds to trigger pruning.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Receipt retention is controlled by the global min-retain-blocks flag.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# defaults to 600 seconds`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`prune-interval-seconds`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`600`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EnableReadWriteMetrics emits estimated read/write counters for Pebble-backed`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# receipt storage.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default: false.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable-read-write-metrics`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# LogFilterParallelism bounds how many blocks a single eth_getLogs query scans`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# concurrently. Applies only when rs-backend = \"littidx\".`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set \u003c= 0 to use the default.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# defaults to 16`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`log-filter-parallelism`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`16`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### EVM Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[evm]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# controls whether an HTTP EVM server is enabled`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`http_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`http_port`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`8545`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# controls whether a websocket server is enabled`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ws_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ws_port`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`8546`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ReadTimeout is the maximum duration for reading the entire`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# request, including the body.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Because ReadTimeout does not let Handlers make per-request`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# decisions on each request body's acceptable deadline or`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# upload rate, most users will prefer to use`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ReadHeaderTimeout. It is valid to use them both.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`read_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"30s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ReadHeaderTimeout is the amount of time allowed to read`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# request headers. The connection's read deadline is reset`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# after reading the headers and the Handler can decide what`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# is considered too slow for the body. If ReadHeaderTimeout`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# is zero, the value of ReadTimeout is used. If both are`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# zero, there is no timeout.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`read_header_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"30s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# WriteTimeout is the maximum duration before timing out`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# writes of the response. It is reset whenever a new`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# request's header is read. Like ReadTimeout, it does not`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# let Handlers make decisions on a per-request basis.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`write_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"30s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# IdleTimeout is the maximum amount of time to wait for the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# next request when keep-alives are enabled. If IdleTimeout`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# is zero, the value of ReadTimeout is used. If both are`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# zero, ReadHeaderTimeout is used.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`idle_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2m0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum gas limit for simulation`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`simulation_gas_limit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Timeout for EVM call in simulation`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`simulation_evm_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"1m0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# list of CORS allowed origins, separated by comma`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`cors_origins`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"*\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# list of WS origins, separated by comma`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ws_origins`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"*\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# timeout for filters`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`filter_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2m0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# checkTx timeout for sig verify`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`checktx_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"5s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# controls whether to have txns go through one by one`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`slow`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enables simulation before broadcasting EVM RPC sendRawTransaction.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable_simulation`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Deny list defines list of methods that EVM RPC should fail fast, e.g [\"debug_traceBlockByNumber\"]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`deny_list`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = []`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Legacy sei_* JSON-RPC (EVM HTTP only - not Cosmos REST on 1317).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# DEPRECATION: The sei_* JSON-RPC surface is deprecated and scheduled for removal. Do not`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# build new integrations on them; use eth_* / debug_* and documented replacements. HTTP 200;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# gate errors use standard JSON-RPC error encoding (see evmrpc/AGENTS.md). Successful allowlisted`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# responses are unchanged; nodes may set HTTP header Sei-Legacy-RPC-Deprecation (see AGENTS.md).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Only methods listed in enabled_legacy_sei_apis are allowed. Init defaults enable all three`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# remaining address/Cosmos helpers.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enabled_legacy_sei_apis`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"sei_getSeiAddress\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"sei_getEVMAddress\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"sei_getCosmosTx\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max number of logs a single eth_getLogs query may match before it errors,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# for both bounded and open-ended block ranges`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_log_no_block`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max estimated heap bytes of matched logs a single eth_getLogs query may return`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_log_bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`67108864`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max number of blocks to query logs for`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_blocks_for_log`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max number of calls allowed in an eth_estimateGasAfterCalls request`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_estimate_gas_calls`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max number of accounts allowed in a single state override`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_state_override_accounts`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max number of storage slots allowed per account in a state override`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_state_override_slots`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max number of concurrent NewHead subscriptions`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_subscriptions_new_head`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max number of concurrent logs subscriptions`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_subscriptions_logs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxConcurrentTraceCalls defines the maximum number of concurrent debug_trace calls.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 for unlimited.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_concurrent_trace_calls`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Max number of blocks allowed to look back for tracing`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to -1 for unlimited lookback, which is useful for archive nodes.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_trace_lookback_blocks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Timeout for each trace call`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"30s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxTraceStructLogBytes bounds the retained struct-logger output (in bytes) per traced`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# transaction on the default debug_trace* endpoints, guarding against quadratic memory growth`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# from traces that read many distinct storage slots. The bound is per transaction, not per RPC`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# call: a debug_traceBlock* call over N transactions retains up to N times this value (and the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# parallelized path holds several concurrent traces live). Set to 0 for unlimited (matches`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# upstream geth behavior).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_trace_struct_log_bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`33554432`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Native debug tracers that may be requested with TraceConfig.Tracer. The default`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# struct logger remains available when Tracer is omitted. Request-supplied`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# JavaScript tracer source is disabled and cannot be enabled through this list.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to [] to disable all named tracers.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_allowed_tracers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"callTracer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"prestateTracer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"flatCallTracer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"4byteTracer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"noopTracer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"muxTracer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Allow request-supplied JavaScript tracer source in TraceConfig.Tracer. This`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# executes untrusted code in-process; keep disabled on public/default RPC nodes.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enabling this does not widen trace_allowed_tracers: native tracer names must`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# still be listed there to be usable.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_allow_js_tracers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable the parallelized default debug_traceBlock* path.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable_parallelized_block_trace`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# WorkerPoolSize defines the number of workers in the worker pool.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default: min(64, CPU cores × 2). Capped at 64 to prevent excessive goroutines on high-core machines.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 to use the default.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`worker_pool_size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`8`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# WorkerQueueSize defines the size of the task queue in the worker pool.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default: 1000 tasks. Set to 0 to use the default.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`worker_queue_size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TraceBakeEnabled, when true, runs a background worker that re-executes`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# each committed block with the configured tracers and stores the result`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# to \u003chome>/data/trace_db. debug_traceTransaction with a bakeable`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# tracer config (callTracer / prestateTracer / flatCallTracer) returns`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# from cache on hit. Recommended for RPC nodes only; default false.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_bake_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Number of re-execution worker goroutines (default 1).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_bake_workers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Bounded in-flight height queue. Drops on full so consensus never blocks.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_bake_queue_size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`4096`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Which tracers to bake per block; must be native tracer names (validated at startup).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_bake_tracers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"callTracer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Rolling cache window: prune blocks older than (latest - this).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 0 disables pruning (cache grows forever).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_bake_window_blocks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TraceBakeUseSnapshot, when true, uses in-memory memiavl snapshots as the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# state backend for trace baking when the store backend supports snapshots.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Watch these metrics when enabling on a high-throughput node:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - memiavl_mem_node_total_size / memiavl_num_of_mem_node: rise if held`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# snapshots are pinning too many COW nodes; lower the window or drop the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# memiavl snapshot interval.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - trace baker dropped/baked counters: dropped > 0 or baked lagging chain`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# tip means the baker is falling behind.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_bake_use_snapshot`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Number of recent memiavl snapshots to retain for trace baking.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trace_bake_snapshot_window`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`64`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ip_rate_limit_rps is the per-IP sustained request rate in requests/second.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 to disable per-IP throttling (no HTTP 429). Does not bypass the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# admission middleware; set rate_limiting_enabled = false for a full bypass.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ip_rate_limit_rps`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`200`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ip_rate_limit_burst is the maximum per-IP burst above the sustained rate.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 to disable per-IP throttling (same effect as ip_rate_limit_rps = 0).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Must be at least batch_request_limit when both are positive and rate_limiting_enabled`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# is true (one token is charged per batch element) - enforced at startup.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ip_rate_limit_burst`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# rate_limiting_enabled is the master switch for the rate-limit admission`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# middleware on the EVM HTTP plane (:8545). When false, requests bypass method`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# extraction and all rejections from that layer (HTTP 400/413/429).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rate_limiting_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# trusted_proxy_cidrs lists CIDRs whose X-Forwarded-For headers are trusted when`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# resolving the client IP for rate limiting. Empty means trust no proxy — set`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# this to your ingress/LB CIDRs when the node sits behind a reverse proxy.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Do NOT use the full RFC-1918 private ranges unless every address in them is`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# your own controlled infrastructure.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trusted_proxy_cidrs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = []`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# batch_request_limit is the maximum number of requests allowed in a single`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# JSON-RPC batch (HTTP and WebSocket). Set to 0 to disable the limit.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`batch_request_limit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# batch_response_max_size is the maximum number of bytes returned from a`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# batched JSON-RPC call (HTTP and WebSocket). Set to 0 to disable the limit.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`batch_response_max_size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`25000000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max_request_body_bytes is the maximum size, in bytes, of a single HTTP (:8545)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# or WebSocket (:8546) JSON-RPC request/frame. HTTP larger requests are rejected`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (HTTP 413) before decode, including at the rate limiter method-extraction`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# layer. WS frames exceeding this limit close the connection with WebSocket`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# close code 1009 (no JSON-RPC error). Set to 0 to use the default (5 MiB).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Upgrade note: WS previously used a hardcoded 10 MiB frame cap; if WS clients`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# send frames in the 5-10 MiB range, set max_request_body_bytes = 10485760`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (10 MiB) in app.toml.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_request_body_bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`5242880`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max_concurrent_request_bytes bounds total request bytes admitted concurrently`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# on HTTP (:8545) and WebSocket (:8546). Each protocol gets an independent`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# budget, so peak in-flight bytes process-wide can reach 2× this value. HTTP`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# charges the budget incrementally as body bytes are read, bounding what a`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# slow/stalled upload can pin to about one read batch rather than the full`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# declared Content-Length; requests that would exceed the budget mid-read are`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# rejected (HTTP 429). WS blocks until budget frees or ws_admission_timeout`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# elapses; on timeout the peer gets JSON-RPC error -32005 and the connection`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# closes. Set to 0 to disable on either protocol.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_concurrent_request_bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`134217728`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ws_admission_timeout bounds how long a WebSocket connection waits for`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# concurrent-byte budget before the next frame is read or committed. On expiry`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the peer receives JSON-RPC error -32005 and the connection closes. Zero or`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# negative values use the go-ethereum default (30s).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ws_admission_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"30s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# body_read_idle_timeout is the maximum idle time allowed between body chunks`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# while reading an HTTP JSON-RPC request. Stalled body reads return HTTP 408 and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# release any byte budget held so far. Set to 0 to disable (ReadTimeout remains`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the whole-request backstop).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`body_read_idle_timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"10s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max_open_connections caps the number of simultaneously accepted connections on`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the EVM HTTP and WebSocket listeners. Set to 0 to disable the limit.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max_open_connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Giga Executor Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[giga_executor]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# enabled controls whether to use the Giga executor for improved EVM throughput.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default: true`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# occ_enabled controls whether to use OCC (Optimistic Concurrency Control) with the Giga executor.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When true, transactions are executed in parallel with conflict detection and retry.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default: true`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`occ_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Admin Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[admin_server]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable the admin gRPC server for runtime log level control.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`admin_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` `})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Listen address for the admin gRPC server. Must be a loopback address.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`admin_address`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"127.0.0.1:9095\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Telemetry Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[telemetry]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Prefixed with keys to separate services.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`service-name`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enabled enables the application telemetry functionality. When enabled,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# an in-memory sink is also enabled by default. Operators may also enabled`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# other sinks such as Prometheus.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable prefixing gauge values with hostname.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable-hostname`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable adding hostname to labels.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable-hostname-label`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable adding service to labels.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable-service-label`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`prometheus-retention-time`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`7200`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When both 'api.enable' and 'telemetry.enabled' are true, this node will expose`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# application metrics (custom Cosmos SDK metrics) on the API server endpoint along with the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Tendermint metrics (port 26660) which are always enabled.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# GlobalLabels defines a global set of name/value label tuples applied to all`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# metrics emitted using the wrapper functions defined in telemetry package.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Example:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# [[\"chain_id\", \"cosmoshub-1\"]]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`global-labels`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = []`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### API Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[api]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable defines if the API server should be enabled.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Swagger defines if swagger documentation should automatically be registered.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`swagger`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Address defines the API server to listen on.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`address`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"tcp://0.0.0.0:1317\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxOpenConnections defines the number of maximum open connections.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-open-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# RPCReadTimeout defines the Tendermint RPC read timeout (in seconds).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rpc-read-timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# RPCWriteTimeout defines the Tendermint RPC write timeout (in seconds).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rpc-write-timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# RPCMaxBodyBytes defines the Tendermint maximum response body (in bytes).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rpc-max-body-bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enabled-unsafe-cors`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Rosetta Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[rosetta]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable defines if the Rosetta API server should be enabled.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Address defines the Rosetta API server to listen on.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`address`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\":8080\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Network defines the name of the blockchain that will be returned by Rosetta.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`blockchain`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"app\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Network defines the name of the network that will be returned by Rosetta.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`network`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"network\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Retries defines the number of retries when connecting to the node before failing.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`retries`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`3`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Offline defines if Rosetta server should run in offline mode.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`offline`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### gRPC Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[grpc]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Enable defines if the gRPC server should be enabled.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Address defines the gRPC server address to bind to.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`address`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0.0.0.0:9090\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxRecvMsgSize defines the maximum message size in bytes the server can receive.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# It bounds per-request memory allocation before the rate limiter fires. Default 4 MB.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-recv-msg-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`4194304`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxOpenConnections defines the maximum number of simultaneous open connections. 0 means unlimited.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-open-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxConnectionIdle is the duration after which an idle connection is closed (e.g. \"5m\"). 0 means infinity.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-connection-idle`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"5m0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxConnectionAge is the maximum duration a connection may exist before it is closed (e.g. \"30m\"). 0 means infinity.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-connection-age`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxConnectionAgeGrace is an additive period after max-connection-age during which the connection is forcibly closed. 0 means infinity.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-connection-age-grace`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# KeepaliveTime is the interval after which, with no activity, the server pings the client to check liveness.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`keepalive-time`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2h0m0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# KeepaliveTimeout is the duration the server waits for a keepalive ping ack before closing the connection.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`keepalive-timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"20s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# KeepaliveMinTime is the minimum interval a client must wait between keepalive pings; more frequent pings are penalized.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`keepalive-min-time`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"5m0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# KeepalivePermitWithoutStream defines whether the server allows keepalive pings even when there are no active streams.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`keepalive-permit-without-stream`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### gRPC Web Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[grpc-web]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# GRPCWebEnable defines if the gRPC-web should be enabled.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# NOTE: gRPC must also be enabled, otherwise, this configuration is a no-op.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Address defines the gRPC-web server address to bind to.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`address`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0.0.0.0:9091\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable-unsafe-cors`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MaxOpenConnections defines the number of maximum open connections. 0 means unlimited.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-open-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Genesis Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Genesis config allows configuring whether to stream from an genesis json file in streamed form`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[genesis]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# stream-import specifies whether to the stream the import from the genesis json file. The genesis`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# file must be in stream form and exported in a streaming fashion.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`stream-import`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# genesis-stream-file specifies the path of the genesis json file to stream from.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`genesis-stream-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### WASM Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[wasm]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm \"smart\" queries`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`query_gas_limit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`300000`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This is the number of wasm vm instances we keep cached in memory for speed-up`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Warning: this is currently unstable and may lead to crashes, best to keep for 0 unless testing locally`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`lru_size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### ETH Replay Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[eth_replay]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`eth_replay_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`eth_rpc`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"http://44.234.105.54:18545\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`eth_data_dir`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/root/.ethereum/chaindata\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`eth_replay_contract_state_checks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### ETH Block Test Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[eth_blocktest]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`eth_blocktest_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`eth_blocktest_test_data_path`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"~/testdata/\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### EVM Query Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[evm_query]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`evm_query_gas_limit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`300000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Light Invariance Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[light_invariance]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`supply_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`]})})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`The generated comments above do not describe two behaviors. First,\n`,_jsx(_components.code,{children:`min-retain-blocks`}),` also controls receipt store retention. The receipt store’s\n`,_jsx(_components.code,{children:`KeepRecent`}),` is derived from `,_jsx(_components.code,{children:`min-retain-blocks`}),`, and `,_jsx(_components.code,{children:`0`}),` means keep\neverything. Second, when `,_jsx(_components.code,{children:`evm-ss-db-directory`}),` is unset, nodes with an existing\n`,_jsx(_components.code,{children:`\u003chome>/data/evm_ss`}),` directory keep using that legacy path. New nodes default\nto `,_jsx(_components.code,{children:`\u003chome>/data/state_store/evm/{backend}`}),`.`]})})]}),_jsxs(Tab,{title:`config.toml`,id:`config-toml`,children:[_jsx(_components.p,{children:`Tendermint and consensus-layer configuration: P2P, RPC, mempool, consensus,\nstate sync, and other settings.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`588`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`588`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This is a TOML config file.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# For more information, see https://github.com/toml-lang/toml`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# NOTE: Any path below can be absolute (e.g. \"/var/myawesomeapp/data\") or`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# relative to the home directory (e.g. \"data\"). The home directory is`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# \"$HOME/.tendermint\" by default, but could be changed via $TMHOME env variable`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# or --home cmd flag.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Main Base Config Options ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# A custom human readable name for this node`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`moniker`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"docs-example\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Mode of Node: full | validator | seed`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * validator node`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - all reactors`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - with priv_validator_key.json, priv_validator_state.json`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * full node`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - all reactors`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - No priv_validator_key.json, priv_validator_state.json`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * seed node`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - only P2P, PEX Reactor`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - No priv_validator_key.json, priv_validator_state.json`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`mode`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"full\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * goleveldb (github.com/syndtr/goleveldb - most popular implementation)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - pure go`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - stable`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * cleveldb (uses levigo wrapper)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - fast`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - requires gcc`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - use cleveldb build tag (go build -tags cleveldb)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - EXPERIMENTAL`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - may be faster is some use-cases (random reads - indexer)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - use boltdb build tag (go build -tags boltdb)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * rocksdb (uses github.com/tecbot/gorocksdb)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - EXPERIMENTAL`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - requires gcc`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - use rocksdb build tag (go build -tags rocksdb)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# * badgerdb (uses github.com/dgraph-io/badger)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - EXPERIMENTAL`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - use badgerdb build tag (go build -tags badgerdb)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`db-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"goleveldb\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Database directory`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`db-dir`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"data\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Output level for logging, including package level options`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`log-level`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"info\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Output format: 'plain' (colored text) or 'json'`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`log-format`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`##### additional base config options #####`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Path to the JSON file containing the initial validator set and other meta data`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`genesis-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"config/genesis.json\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# A JSON file containing the private key to use for p2p authenticated encryption`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`node-key-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"config/node_key.json\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# FastCheckTx bypasses application CheckTx with a stateless EVM transaction parser.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TEST-ONLY`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`fast-check-tx`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# MockApp replaces the provided ABCI application with an in-memory EVM nonce app.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TEST-ONLY`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`mock-app`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Autobahn Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# AutobahnConfigFile is the path to a JSON file containing the Autobahn (GigaRouter)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# configuration.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Empty disables Autobahn.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Placed here (as a top-level key, before any [section] header) so the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TOML parser sees it at root scope where mapstructure expects it — viper`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# would otherwise nest it under the immediately preceding section.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`autobahn-config-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# hash-vault-disabled-unsafe disables the app-hash equivocation guard (HashVault).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# DO NOT set this to true unless you are knowingly running an UNSAFE node as a last-resort`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# recovery measure. A node with this enabled has NO protection against changing its mind about`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# a committed block's app hash, and will log error-level warnings on every startup.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# It is safer to leave HashVault enabled: if you hit a startup panic, first remove the HashVault`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# files as instructed in the panic message and let the node run. Only disable HashVault if you are`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# very sure the stored hashes are totally wrong and you keep hitting the same panic on new blocks.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Placed here (as a top-level key, before any [section] header) so the TOML parser sees it at`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# root scope where mapstructure expects it — viper would otherwise nest it under the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# immediately preceding section.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`hash-vault-disabled-unsafe`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Advanced Configuration Options ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### RPC Server Configuration Options ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[rpc]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TCP or UNIX socket address for the RPC server to listen on`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`laddr`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"tcp://0.0.0.0:26657\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# A list of origins a cross-domain request can be executed from`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default value '[]' disables cors support`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Use '[\"*\"]' to allow any origin`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`cors-allowed-origins`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = []`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# A list of methods the client is allowed to use with cross-domain requests`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`cors-allowed-methods`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"HEAD\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"GET\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"POST\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, ]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# A list of non simple headers the client is allowed to use with cross-domain requests`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`cors-allowed-headers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Origin\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Accept\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"X-Requested-With\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"X-Server-Time\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, ]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Activate unsafe RPC commands like /dial-seeds and /unsafe-flush-mempool`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`unsafe`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of simultaneous connections (including WebSocket).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If you want to accept a larger number than the default, make sure`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# you increase your OS limits.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 0 - unlimited.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Should be \u003c {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 1024 - 40 - 10 - 50 = 924 = ~900`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-open-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`900`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of unique clientIDs that can /subscribe`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If you're using /broadcast_tx_commit, set to the estimated maximum number`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# of broadcast_tx_commit calls per block.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-subscription-clients`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of unique queries a given client can /subscribe to`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If you're using a Local RPC client and /broadcast_tx_commit, set this`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# to the estimated maximum number of broadcast_tx_commit calls per block.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-subscriptions-per-client`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`5`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If true, disable the websocket interface to the RPC service. This has`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the effect of disabling the /subscribe, /unsubscribe, and /unsubscribe_all`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# methods for event subscription.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EXPERIMENTAL: This setting will be removed in Tendermint v0.37.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`experimental-disable-websocket`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The time window size for the event log. All events up to this long before`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the latest (up to EventLogMaxItems) will be available for subscribers to`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# fetch via the /events method. If 0 (the default) the event log and the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# /events RPC method are disabled.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`event-log-window-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"30s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The maxiumum number of events that may be retained by the event log. If`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# this value is 0, no upper limit is set. Otherwise, items in excess of`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# this number will be discarded from the event log.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Warning: This setting is a safety valve. Setting it too low may cause`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# subscribers to miss events. Try to choose a value higher than the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# maximum worst-case expected event load within the chosen window size in`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ordinary operation.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# For example, if the window size is 10 minutes and the node typically`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# averages 1000 events per ten minutes, but with occasional known spikes of`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# up to 2000, choose a value > 2000.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`event-log-max-items`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# How long to wait for a tx to be committed during /broadcast_tx_commit.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# WARNING: Using a value larger than 10s will result in increasing the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# global HTTP write timeout, which applies to all connections and endpoints.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# See https://github.com/tendermint/tendermint/issues/3435`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`timeout-broadcast-tx-commit`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"10s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum size of request body, in bytes`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-body-bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum size of request header, in bytes`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-header-bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1048576`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The path to a file containing certificate that is used to create the HTTPS server.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Might be either absolute path or path related to Tendermint's config directory.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If the certificate is signed by a certificate authority,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the certFile should be the concatenation of the server's certificate, any intermediates,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# and the CA's certificate.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Otherwise, HTTP server is run.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`tls-cert-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The path to a file containing matching private key that is used to create the HTTPS server.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Might be either absolute path or path related to Tendermint's config directory.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Otherwise, HTTP server is run.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`tls-key-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# pprof listen address (https://golang.org/pkg/net/http/pprof)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`pprof-laddr`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# timeout for any read request`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`timeout-read`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"10s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# timeout to read HTTP request headers; mitigates slowloris attacks.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to \"0s\" to disable (not recommended).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`timeout-read-header`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"10s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# HTTP write timeout; acts as a hard backstop for all handlers.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to \"0s\" to disable (not recommended).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`timeout-write`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"30s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of results returned by tx_search and block_search.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 to disable the cap (not recommended on public nodes).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-tx-search-results`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of KV index entries that all in-flight tx_search and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# block_search requests may visit at once. This is a process-wide safety cap`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# that bounds peak memory (and scan CPU) under broad or highly concurrent`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# search load; it is shared across requests, not applied per-query. When the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# budget is exhausted an in-flight search fails rather than continuing to`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# accumulate. Set to 0 to disable the cap (not recommended on public nodes).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-search-scan-budget`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ip-rate-limit-rps is the per-IP sustained request rate in requests/second for`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# CometBFT RPC HTTP (:26657). Zero disables the token bucket (no HTTP 429`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# rejections). When rate-limiting-enabled is true, the admission middleware still`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# runs: bodies are parsed and oversize/malformed requests are rejected before dispatch.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ip-rate-limit-rps`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`200`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ip-rate-limit-burst is the maximum per-IP burst above the sustained rate.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Zero disables the token bucket (same effect as ip-rate-limit-rps = 0) and does`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# not bypass the admission middleware when rate-limiting-enabled is true. Must be`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# at least the JSON-RPC batch size limit when both are positive and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# rate-limiting-enabled is true because the rate limiter charges one token per`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# JSON-RPC batch element.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ip-rate-limit-burst`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`400`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# rate-limiting-enabled is the master switch for the rate-limit admission`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# middleware on the CometBFT RPC HTTP plane. When false, requests bypass method`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# extraction and all rejections from that layer (HTTP 400/413/429).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rate-limiting-enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# trusted-proxy-cidrs lists CIDRs whose X-Forwarded-For headers are trusted when`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# resolving the client IP for rate limiting. Empty means trust no proxy.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trusted-proxy-cidrs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = []`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### P2P Configuration Options ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[p2p]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Select the p2p internal queue`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`queue-type`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"simple-priority\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Address to listen for incoming connections`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`laddr`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"tcp://0.0.0.0:26656\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Address to advertise to peers for them to dial`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If empty, will use the same port as the laddr,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# and will introspect on the listener or use UPnP`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# to figure out the address. ip and port are required`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# example: 159.89.10.97:26656`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`external-address`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Comma separated list of peers to be added to the peer store`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# on startup. Either BootstrapPeers or PersistentPeers are`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# needed for peer discovery`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`bootstrap-peers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0cd5f57c249b5aca815710338e1fe7a14797585d@seed-0-p2p.pacific-1.prod.platform.sei.io:26656,f0f057f1593d28bec11591cf146bd223e0be1866@seed-1-p2p.pacific-1.prod-euw1.platform.sei.io:26656,8e28f62368a1ceae0102645db8584b218650930d@seed-2-p2p.pacific-1.prod-use2.platform.sei.io:26656\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Comma separated list of nodes to keep persistent connections to`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`persistent-peers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Comma separated list of nodes for block sync only`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`blocksync-peers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# UPNP port forwarding`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`upnp`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of connections (inbound and outbound).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Rate limits the number of incoming connection attempts per IP address.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-incoming-connection-attempts`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set true to enable the peer-exchange reactor`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`pex`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Comma separated list of peer IDs to keep private (will not be gossiped to other peers)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Warning: IPs will be exposed at /net_info, for more information https://github.com/tendermint/tendermint/issues/3055`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`private-peer-ids`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Toggle to disable guard against peers connecting from the same ip.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`allow-duplicate-ip`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Peer connection configuration.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`handshake-timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"10s\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`dial-timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"3s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# How often the node accepts a new inbound connection. A larger interval paces`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the accept loop more slowly; if the kernel accept backlog outpaces it, arriving`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# peers wait past handshake-timeout and the node silently stops acquiring inbound`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# peers. A value of 0 disables the limiter.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`accept-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"10ms\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Time to wait before flushing messages out on the connection`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TODO: Remove once MConnConnection is removed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`flush-throttle-timeout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"100ms\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum size of a message packet payload, in bytes`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TODO: Remove once MConnConnection is removed.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# WARNING: coordinate before changing this default; impacts network interoperability`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-packet-msg-payload-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1000000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Rate at which packets can be sent, in bytes/second`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TODO: Remove once MConnConnection is removed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`send-rate`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`20971520`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Rate at which packets can be received, in bytes/second`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TODO: Remove once MConnConnection is removed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`recv-rate`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`20971520`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# List of node IDs, to which a connection will be (re)established, dropping an existing peer if any existing limit has been reached`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`unconditional-peer-ids`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Mempool Configuration Options ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[mempool]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# recheck has been moved from a config option to a global`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# consensus param in v0.36`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# See https://github.com/tendermint/tendermint/issues/8244 for more information.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set true to broadcast transactions in the mempool to other nodes`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`broadcast`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of transactions in the mempool`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`5000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Limit the total size of all txs in the mempool.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This only accounts for raw transactions (e.g. given 1MB transactions and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# max-txs-bytes=5MB, mempool will only accept 5 transactions).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-txs-bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1073741824`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Size of the cache (used to filter transactions we saw earlier) in transactions`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`cache-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Size of the cache duplicate tx keys for tracking metrics`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`duplicate-txs-cache-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"100000\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Do not remove invalid transactions from the cache (default: false)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to true if it's not possible for any invalid transaction to become valid`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# again in the future.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`keep-invalid-txs-in-cache`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum size of a single transaction.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# NOTE: the max size of a tx transmitted over the network is {max-tx-bytes}.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-tx-bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1048576`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum size of a batch of transactions to send to a peer`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Including space needed by encoding (one varint per transaction).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-batch-bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ttl-duration, if non-zero, defines the maximum amount of time a transaction`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# can exist for in the mempool.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Note, if ttl-num-blocks is also defined, a transaction will be removed if it`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# has existed in the mempool at least ttl-num-blocks number of blocks or if it's`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# insertion time into the mempool is beyond ttl-duration.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ttl-duration`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"5s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# ttl-num-blocks, if non-zero, defines the maximum number of blocks a transaction`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# can exist for in the mempool.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Note, if ttl-duration is also defined, a transaction will be removed if it`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# has existed in the mempool at least ttl-num-blocks number of blocks or if`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# it's insertion time into the mempool is beyond ttl-duration.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ttl-num-blocks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`tx-notify-threshold`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`check-tx-error-blacklist-enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`check-tx-error-threshold`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`50`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`pending-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`5000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-pending-txs-bytes`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1073741824`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`pending-ttl-duration`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`pending-ttl-num-blocks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defines the percentage of transactions with the lowest priority hint`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# (expressed as a percentage in the range [0.0, 1.0]) that will be`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# dropped from the mempool once the configured utilisation threshold`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# is reached.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`drop-priority-threshold`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0.1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defines the mempool utilisation level (expressed as a percentage in`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the range [0.0, 1.0]) above which transactions will be selectively`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# dropped based on their priority hint.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# For example, if this parameter is set to 0.8, then once the mempool reaches`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 80% capacity, transactions with priority hints below drop-priority-threshold`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# percentile will be dropped to make room for new transactions.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`drop-utilisation-threshold`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Defines the size of the reservoir for keeping track`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# of the distribution of transaction priorities in the mempool.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This is used to determine the priority threshold below which transactions will`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# be dropped when the mempool utilisation exceeds drop-priority-threshold.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The reservoir is a statistically representative sample of transaction`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# priorities in the mempool, and is used to estimate the priority distribution`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# without needing to store all transaction priorities.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# A larger reservoir size will yield a more accurate estimate of the priority`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# distribution, but will consume more memory.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The default value of 10,240 is a reasonable compromise between accuracy and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# memory usage for most use cases. It takes approximately 80KB of memory storing`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# int64 transaction priorities.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# See DropUtilisationThreshold and DropPriorityThreshold.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`drop-priority-reservoir-size`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10240`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### State Sync Configuration Options ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[statesync]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the network to take and serve state machine snapshots. State sync is not attempted if the node`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# has any local state (LastBlockHeight > 0). The node will have a truncated block history,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# starting from the height of the snapshot.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# State sync uses light client verification to verify state. This can be done either through the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# P2P layer or RPC layer. Set this to true to use the P2P layer. If false (default), RPC layer`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# will be used.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`use-p2p`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If using RPC, at least two addresses need to be provided. They should be compatible with net.Dial,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# for example: \"host.example.com:2125\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rpc-servers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The hash and height of a trusted block. Must be within the trust-period.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trust-height`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trust-hash`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The trust period should be set so that Tendermint can detect and gossip misbehavior before`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# it is considered expired. For chains based on the Cosmos SDK, one day less than the unbonding`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# period should suffice.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`trust-period`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"168h0m0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Whether to use local snapshot only for state sync or not.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If this is true, then state sync will look for existing snapshots`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# which are located in the snapshot-dir configured in app.toml (default to [home-dir]/data/snapshots)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`use-local-snapshot`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Advanced state-sync tuning knobs are intentionally omitted from this template:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - backfill-blocks, backfill-duration: post-sync historical light-block backfill`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - discovery-time, temp-dir: snapshot discovery and chunk staging`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - chunk-request-timeout, fetchers: chunk transfer behavior`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# - verify-light-block-timeout, blacklist-ttl: light client verification`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# They are still parsed if set explicitly here; see the Sei docs for the full list`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# and recommended values.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Consensus Configuration Options ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[consensus]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`wal-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"data/tendermint/cs.wal/wal\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# How many blocks to look back to check existence of the node's consensus votes before joining consensus`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When non-zero, the node will panic upon restart`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# if the same consensus key was used to sign {double-sign-check-height} last blocks.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`double-sign-check-height`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# EmptyBlocks mode and possible interval between empty blocks`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`create-empty-blocks`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`create-empty-blocks-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Only gossip hashes, not the actual data`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`gossip-tx-key-only`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"true\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Reactor sleep duration parameters`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`peer-gossip-sleep-duration`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"100ms\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`peer-query-maj23-sleep-duration`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2s\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Transaction Indexer Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[tx-index]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The backend database list to back the indexer.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If list contains \"null\" or \"\", meaning no indexer service will be used.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The application will set which txs to index. In some cases a node operator will be able`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# to decide which txs to index based on configuration set in the application.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Options:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 1) \"null\" (default) - no indexer services.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 2) \"kv\" - a simple indexer backed by key-value storage (see DBBackend)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 3) \"psql\" - the indexer services backed by PostgreSQL.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When \"kv\" or \"psql\" is chosen \"tx.height\" and \"tx.hash\" will always be indexed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`indexer`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"kv\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The PostgreSQL connection configuration, the connection format:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# postgresql://\u003cuser>:\u003cpassword>@\u003chost>:\u003cport>/\u003cdb>?\u003copts>`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`psql-conn`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Instrumentation Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[instrumentation]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# When true, Prometheus metrics are served under /metrics on`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# PrometheusListenAddr.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Check out the documentation for the list of available metrics.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`prometheus`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Address to listen for Prometheus collector(s) connections`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`prometheus-listen-addr`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\":26660\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Maximum number of scrapes served concurrently. Not a socket limit despite the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# name: requests past it receive a 503 rather than being queued. Keep it above`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the number of scrapers that can overlap (an HA Prometheus pair, probes, a human`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# curl) — a slow reader holds a slot until it finishes or times out.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# 0 - unlimited.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`max-open-connections`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`3`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Priv Validator Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[priv-validator]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Path to the JSON file containing the private key to use as a validator in the consensus protocol`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`key-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"config/priv_validator_key.json\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Path to the JSON file containing the last sign state of a validator`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`state-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"data/priv_validator_state.json\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# TCP or UNIX socket address for Tendermint to listen on for`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# connections from an external PrivValidator process`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# when the listenAddr is prefixed with grpc instead of tcp it will use the gRPC Client`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`laddr`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Path to the client certificate generated while creating needed files for secure connection.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If a remote validator address is provided but no certificate, the connection will be insecure`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`client-certificate-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Client key generated while creating certificates for secure connection`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`client-key-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Path to the Root Certificate Authority used to sign both client and server certificates`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`root-ca-file`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### SelfRemediation Configuration (Auto-managed) ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#######################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[self-remediation]`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If the node has no p2p peers available then trigger a restart`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 to disable`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`p2p-no-peers-available-window-seconds`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# If node has no peers for statesync after a period of time then restart`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 to disable`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`statesync-no-peers-available-window-seconds`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Threshold for how far back the node can be behind the current block height before triggering a restart`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Set to 0 to disable`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`blocks-behind-threshold`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# How often to check if node is behind`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`blocks-behind-check-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`60`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Cooldown between each restart`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`restart-cooldown-seconds`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`600`})]}),`\n`]})})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`Out-of-process Application Blockchain Interface (ABCI) support has been\nremoved. The node runs only with Tendermint in-process. As a result, the legacy\n`,_jsx(_components.code,{children:`proxy-app`}),` and `,_jsx(_components.code,{children:`abci`}),` base config fields no longer appear in the generated\nfile and have no effect. When you upgrade, remove any `,_jsx(_components.code,{children:`proxy-app`}),` and `,_jsx(_components.code,{children:`abci`}),`\nlines from your existing `,_jsx(_components.code,{children:`config.toml`}),`.`]})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`[p2p]`}),` section also accepts `,_jsx(_components.code,{children:`max-outbound-connections`}),`, which `,_jsx(_components.code,{children:`seid init`}),`\ndoes not emit. Inbound and outbound connections are managed in separate pools.\nThis field caps the outbound pool, and the inbound pool is derived as\n`,_jsx(_components.code,{children:`max-connections - max-outbound-connections`}),`. Persistent and unconditional\npeers bypass both limits. If the field is unset, it defaults to 20, or to half\nof `,_jsx(_components.code,{children:`max-connections`}),` (rounded up) when `,_jsx(_components.code,{children:`max-connections`}),` is below 40. If you\nset it explicitly, the effective value is\n`,_jsx(_components.code,{children:`min(max-connections, max-outbound-connections)`}),`.`]})}),_jsxs(Note,{children:[_jsx(_components.p,{children:`The Tendermint mempool was substantially rewritten. A unified transaction store\ndrives transaction admission, ordering, eviction, and gossip. The store uses\ninclusion ordering, soft and hard size limits, and cache-based deduplication.\nAs a result, node operators may observe different ordering, eviction, and\ngossip behavior after they upgrade.`}),_jsxs(_components.p,{children:[`A zero `,_jsx(_components.code,{children:`ttl-duration`}),` or `,_jsx(_components.code,{children:`ttl-num-blocks`}),` disables that form of TTL purging\nentirely. Expired PENDING transactions are always pruned. Expired READY\ntransactions are pruned when `,_jsx(_components.code,{children:`remove-expired-txs-from-queue`}),` is `,_jsx(_components.code,{children:`true`}),` (the\ndefault). The `,_jsx(_components.code,{children:`pending-ttl-duration`}),` and `,_jsx(_components.code,{children:`pending-ttl-num-blocks`}),` fields are\ndeprecated and have no effect. Pending transactions are no longer purged based\non their own TTL.`]})]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`[consensus]`}),` section also accepts `,_jsx(_components.code,{children:`unsafe-overrides-enabled`}),` (default\n`,_jsx(_components.code,{children:`false`}),`), which `,_jsx(_components.code,{children:`seid init`}),` does not emit. The `,_jsx(_components.code,{children:`unsafe-*-override`}),` timeout\nfields take effect only when `,_jsx(_components.code,{children:`unsafe-overrides-enabled`}),` is `,_jsx(_components.code,{children:`true`}),` or when the\nonchain timeout params still equal the legacy pacific-1 values. The second case\nis a backward-compatibility carve-out during migration. Otherwise, the\noverrides are ignored, and the onchain (or default) timeout params are used.`]})})]}),_jsxs(Tab,{title:`client.toml`,id:`client-toml`,children:[_jsxs(_components.p,{children:[`CLI and client defaults that `,_jsx(_components.code,{children:`seid`}),` itself uses (chain ID, keyring backend,\noutput format, node endpoint).`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# This is a TOML config file.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# For more information, see https://github.com/toml-lang/toml`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`### Client Configuration ###`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`###############################################################################`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The network chain ID`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`chain-id`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"pacific-1\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The keyring's backend, where the keys are stored (os|file|kwallet|pass|test|memory)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`keyring-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"os\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# CLI output format (text|json)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`output`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# \u003chost>:\u003cport> to Tendermint RPC interface for this chain`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`node`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"tcp://localhost:26657\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Transaction broadcasting mode (sync|async|block)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`broadcast-mode`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"sync\"`})]}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`database-management`,children:`Database management`}),`\n`,_jsx(Heading,{level:`3`,id:`architecture`,children:`Architecture`}),`\n`,_jsxs(_components.p,{children:[`Sei uses `,_jsx(_components.strong,{children:`SeiDB`}),` to store chain data. SeiDB is a two-layer design that\nreplaces the legacy single-database IAVL store with separate tiers for hot and\nhistorical data:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`State Commit (SC)`}),`: the active chain state. It is used for transaction\nexecution and to compute the per-block app hash. Cosmos modules sit on a\nmemory-mapped Merkle tree (`,_jsx(_components.code,{children:`memiavl`}),`) ported from Cronos. EVM state can\nalso be routed through `,_jsx(_components.strong,{children:`FlatKV`}),`, an EVM-tuned PebbleDB store\nwith per-type sub-databases (`,_jsx(_components.code,{children:`account`}),`, `,_jsx(_components.code,{children:`code`}),`, `,_jsx(_components.code,{children:`storage`}),`, and `,_jsx(_components.code,{children:`misc`}),`).\nSince v6.7.0, nodes run in the `,_jsx(_components.code,{children:`auto`}),` write mode by default and move EVM\nstate into FlatKV when governance starts the migration. See the\n`,_jsx(_components.a,{href:`/node/giga-storage-migration#flatkv-evm-sc-migration-flow`,children:`FlatKV EVM SC migration flow`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`State Store (SS)`}),`: versioned raw key-value pairs for historical\nqueries. It is required for any node that serves RPC. The default backend is\n`,_jsx(_components.strong,{children:`PebbleDB`}),`. Do not use RocksDB for new nodes. If you already use RocksDB,\nfollow `,_jsx(_components.a,{href:`#move-off-rocksdb`,children:`Move off RocksDB`}),` before support is removed.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The legacy IAVL backend has been fully removed, and every node runs on SeiDB.\nIf you set `,_jsx(_components.code,{children:`sc-enable = false`}),`, the node panics at startup with `,_jsx(_components.code,{children:`SeiDB state-commit (SC) must be enabled; IAVL backend has been fully deprecated`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`seidb-configuration`,children:`SeiDB configuration`}),`\n`,_jsxs(_components.p,{children:[`The full set of settings is in the auto-generated\n`,_jsx(_components.a,{href:`#default-configurations`,children:`Default configurations`}),` above. The block below\ncovers the values that most node operators tune in practice.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`57`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`57`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-commit]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# SeiDB state-commit is mandatory; setting this to false panics at startup.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Async commit queue. Larger values improve catch-up; 0 = synchronous.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-async-commit-buffer`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Take a state-commit snapshot every N blocks.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-snapshot-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10000`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Minimum wall-clock interval (seconds) between snapshots; prevents overlap`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# during catch-up. Lower this if you set sc-snapshot-interval below ~5000.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-snapshot-min-time-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`3600`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Cap on snapshot write throughput across all trees (MB/s). 0 = unlimited.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-snapshot-write-rate-mbps`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# The node runs in the auto write mode by default. It checks that sc-write-mode`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# has a valid value, but it does not use the value.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# To pin a mode, also set sc-write-mode-enable-auto = false. Read the Giga`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# storage migration guide first.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# sc-read-mode and sc-enable-lattice-hash are not seid config keys. Since`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# v6.7.0, the node also ignores sc-keys-to-migrate-per-block. You can remove`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# these keys.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`sc-write-mode`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"memiavl_only\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-commit.flatkv]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# FlatKV uses built-in defaults. The only key in this section that the node`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# applies is enable-read-write-metrics (default false).`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-store]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Historical SS layer. Validators can disable this to save disk; any node`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# serving RPC must keep it on.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-enable`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Use PebbleDB. RocksDB support will be removed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"pebbledb\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-async-write-buffer`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Versions to retain. 0 = keep everything (archive-style). 100,000 ≈ 28h.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-keep-recent`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100000`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Pruning interval, plus a small random jitter, to avoid colliding with`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# snapshot creation.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`ss-prune-interval`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`600`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Optional EVM SS routing — when true, EVM data is routed exclusively to a`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# dedicated EVM SS backend (no fallback between backends). Leave false`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# unless you have completed the Giga SS Store migration.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`evm-ss-split`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`evm-ss-separate-dbs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[receipt-store]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Supported backends: pebbledb (aka pebble) and littidx. parquet was removed in v6.6.0.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Receipts are pruned together with blocks according to min-retain-blocks above.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`rs-backend`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"pebbledb\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`async-write-buffer`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`prune-interval-seconds`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`600`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Small (more frequent) pruning intervals may collide with snapshot creation.\nIntervals that are too large (less frequent) make pruning take longer overall.\nThis can cause missed blocks and excessive resync time.`}),`\n`,_jsx(Heading,{level:`4`,id:`pebbledb-version-encoding`,children:`PebbleDB version encoding`}),`\n`,_jsxs(_components.p,{children:[`New PebbleDB state stores use descending-version MVCC encoding. Sei includes\nthe version in each key and sorts newer versions first. This lets\nlatest-version reads reach the newest visible value without scanning older\nversions. The store records this format with the `,_jsx(_components.code,{children:`s/_mvcc_descending`}),` sentinel\nkey, which `,_jsx(_components.code,{children:`seid`}),` detects automatically when it opens the database.`]}),`\n`,_jsxs(_components.p,{children:[`PebbleDB state stores created by older builds use ascending-version encoding.\n`,_jsx(_components.code,{children:`seid`}),` detects these stores and opens them in compatibility mode without an\nerror. They remain on the slower ascending read path. To adopt descending\nencoding, rebuild the state store through `,_jsx(_components.a,{href:`/node/statesync`,children:`state sync`}),` with a\ncurrent `,_jsx(_components.code,{children:`seid`}),` release. A filesystem snapshot preserves the source store’s\nencoding, so confirm its encoding with the snapshot provider.`]}),`\n`,_jsx(Heading,{level:`3`,id:`move-off-rocksdb`,children:`Move off RocksDB`}),`\n`,_jsxs(Warning,{children:[`Check the `,_jsx(_components.a,{href:`https://github.com/sei-protocol/sei-chain/releases`,children:`Sei release notes`}),` before every upgrade. RocksDB support for the SeiDB state store will be removed. No target release has been published.`]}),`\n`,_jsxs(_components.p,{children:[`RocksDB and PebbleDB use different on-disk formats. Changing\n`,_jsx(_components.code,{children:`ss-backend = \"rocksdb\"`}),` to `,_jsx(_components.code,{children:`ss-backend = \"pebbledb\"`}),` on the same data\ndoes not convert the store. Rebuild the state store instead.`]}),`\n`,_jsx(_components.p,{children:`For a non-archive node:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Stop `,_jsx(_components.code,{children:`seid`}),`. Then back up the validator key, validator state, node key,\nconfiguration, and genesis file that you need to preserve.`]}),`\n`,_jsxs(_components.li,{children:[`Check `,_jsx(_components.code,{children:`ss-db-directory`}),` and `,_jsx(_components.code,{children:`evm-ss-db-directory`}),` in `,_jsx(_components.code,{children:`app.toml`}),`. An empty\nvalue uses a path under `,_jsx(_components.code,{children:`$HOME/.sei/data`}),`. If either setting points\nelsewhere, move the old RocksDB data out of the active path. Keep it with\nthe backup. Clearing `,_jsx(_components.code,{children:`$HOME/.sei/data`}),` does not clear a custom directory.`]}),`\n`,_jsxs(_components.li,{children:[`Set `,_jsx(_components.code,{children:`ss-backend = \"pebbledb\"`}),`. Then rebuild through\n`,_jsx(_components.a,{href:`/node/statesync`,children:`state sync`}),` or a provider-confirmed\n`,_jsx(_components.a,{href:`/node/snapshot`,children:`PebbleDB snapshot`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Confirm that the startup log reports `,_jsx(_components.code,{children:`\"SeiDB SS is enabled\"`}),` with the\nPebbleDB backend. Before you delete the old RocksDB backup, test the RPC\nmethods that your node serves.`]}),`\n`]}),`\n`,_jsx(Danger,{children:`Do not use state sync or a pruned snapshot to migrate an archive node. Both start from a recent height and discard the earlier state-store versions that an archive node must retain.`}),`\n`,_jsxs(_components.p,{children:[`There is no documented in-place migration for a RocksDB archive node. Build a\nseparate replacement from a trusted full-history PebbleDB source. Keep the\nRocksDB node on a compatible `,_jsx(_components.code,{children:`seid`}),` release until the replacement has caught\nup and you have tested historical queries at old heights. If you cannot get\na full-history PebbleDB source, do not wipe the existing archive data. Contact\nthe `,_jsx(_components.a,{href:`https://t.me/+KZdhZ1eE-G01NmZk`,children:`Sei Tech Chat`}),` before you upgrade.`]}),`\n`,_jsxs(_components.p,{children:[`PebbleDB can be slower for iteration-heavy historical queries, including\n`,_jsx(_components.code,{children:`debug_trace*`}),` requests. Descending-version encoding improves recent reads,\nbut it does not remove the cost of long-history iteration. Before you cut over,\nbenchmark the replacement under your trace workload.`]}),`\n`,_jsx(Heading,{level:`3`,id:`giga-storage-and-giga-executor`,children:`Giga Storage and Giga Executor`}),`\n`,_jsxs(_components.p,{children:[`These are two `,_jsx(_components.strong,{children:`separate`}),` features that ship in newer `,_jsx(_components.code,{children:`seid`}),` releases.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Giga Storage`}),` repartitions SeiDB so that EVM state lives in its own\ndatabases at both the SC and SS layers. This frees non-EVM modules from EVM\nwrite amplification.`]}),`\n`,_jsxs(Info,{children:[`For step-by-step instructions, see the `,_jsx(_components.a,{href:`/node/giga-storage-migration`,children:`Giga SS Store Migration Guide`}),`. The guide includes the full state sync flow, startup verification, safety checks, and rollback. The snippet below shows only the resulting `,_jsx(_components.code,{children:`app.toml`}),` shape.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[state-store]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Route EVM data to a dedicated EVM SS backend (Giga SS Store migration).`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`evm-ss-split`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The SC layer has its own, separate migration path, which governance controls.\nBefore you change `,_jsx(_components.code,{children:`sc-write-mode`}),` or `,_jsx(_components.code,{children:`sc-write-mode-enable-auto`}),`, see the\n`,_jsx(_components.a,{href:`/node/giga-storage-migration#flatkv-evm-sc-migration-flow`,children:`FlatKV EVM SC migration flow`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Enabling Giga Storage requires a fresh state sync. If you flip `,_jsx(_components.code,{children:`evm-ss-split`}),`\non a node with existing data, the node fails the startup safety checks. This\nis because the new EVM SS DB starts empty while Cosmos SS already has history.\nThe full procedure is in the\n`,_jsx(_components.a,{href:`/node/giga-storage-migration`,children:`Giga SS Store Migration Guide`}),`. The procedure\nis currently supported on `,_jsx(_components.strong,{children:`RPC nodes only`}),`. Validators and archive nodes are\nnot yet covered.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Giga Executor`}),` is independent of Giga Storage. From the v6.6 release line,\nnewly generated configurations and configurations that omit these fields\ndefault to the Giga execution path with OCC enabled. To opt out, set both\nfields explicitly to `,_jsx(_components.code,{children:`false`}),`. Before you change either setting, follow the\nrelease-specific operator instructions:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[giga_executor]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Use the Giga execution path.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default: true.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Run Giga-executed txs in parallel with Optimistic Concurrency Control.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Default: true.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`occ_enabled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`database-maintenance`,children:`Database maintenance`}),`\n`,_jsx(_components.p,{children:`The database is typically stable and can be left alone. However, it may need\nsome attention:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Check database size`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`du`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -sh`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $HOME`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/.sei/data/`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Confirm correct file paths as per your own setup before proceeding.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Back up the data directory BEFORE wiping it:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`cp`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -r`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $HOME`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/.sei/data/`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $HOME`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/sei-backup-`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`date`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` +%Y%m%d`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Your keys and config live in $HOME/.sei/config and are NOT removed by the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# wipe below, but keep them safe regardless:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:\"# - `node_key.json`: Preserves node identity to maintain peer connections.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:\"# - `priv_validator_key.json`: Critical for validators; losing this key results in double signing risks.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:\"# - `config.toml` \u0026 `app.toml`: Retains node-specific configuration.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:\"# - `genesis.json`: Required for correct chain initialization.\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Wipe database for a fresh resync (destructive — deletes all chain data`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# except priv_validator_state.json)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`find`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $HOME`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/.sei/data/`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -mindepth`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` !`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -name`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` 'priv_validator_state.json'`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -delete`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`rm`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -rf`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $HOME`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/.sei/wasm`})]}),`\n`]})})}),`\n`,_jsxs(Warning,{children:[`After you run the wipe command above, resync the node from a `,_jsx(_components.a,{href:`/node/snapshot`,children:`snapshot`}),` or through `,_jsx(_components.a,{href:`/node/statesync`,children:`state sync`}),`. Until then, the node cannot serve traffic. The command deletes the entire local database (everything except `,_jsx(_components.code,{children:`priv_validator_state.json`}),`) and the `,_jsx(_components.code,{children:`wasm`}),` folder. It does not compact data in place.`]}),`\n`,_jsx(Heading,{level:`2`,id:`service-management`,children:`Service management`}),`\n`,_jsx(Heading,{level:`3`,id:`systemd-commands`,children:`Systemd commands`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Check service status`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` status`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Start service`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` start`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Stop service`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` stop`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Restart service`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` restart`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# View logs in real time`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`journalctl`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -fu`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -o`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` cat`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`log-management`,children:`Log management`}),`\n`,_jsx(_components.p,{children:`To stop logs from using too much disk space, enable log rotation:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` tee`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` /etc/logrotate.d/sei`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` > `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/dev/null`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c `}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`EOF`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/var/log/sei/*.log {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` daily`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` rotate 14`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` compress`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` delaycompress`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` notifempty`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` create 0640 sei sei`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` sharedscripts`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` postrotate`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` systemctl reload seid`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` endscript`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`EOF`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`update-procedures`,children:`Update procedures`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Upgrade with the same method that you used for the original install. The\n`,_jsx(_components.code,{children:`make install`}),` command writes `,_jsx(_components.code,{children:`seid`}),` to `,_jsx(_components.code,{children:`$(go env GOPATH)/bin`}),`, but the\nprebuilt-binary flow installs to `,_jsx(_components.code,{children:`/usr/local/bin`}),`. If you mix the two,\nseparate binaries stay on your `,_jsx(_components.code,{children:`PATH`}),`, and your service unit may keep running\nthe old version. The `,_jsx(_components.code,{children:`which -a seid`}),` command lists every copy.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`minor-updates`,children:`Minor updates`}),`\n`,_jsx(_components.p,{children:`For minor updates that do not break consensus:`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Prebuilt binary`,id:`prebuilt-binary`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`15`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Stop node`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` stop`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Download and verify the new release binary`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=\u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`new-version`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`> `}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the new release tag, e.g. v6.6.1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`FILE`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`sei-chain_`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`#`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`_linux_x86_64.tar.gz`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # asset filenames omit the leading v`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -fLO`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://github.com/sei-protocol/sei-chain/releases/download/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`FILE`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -fLO`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://github.com/sei-protocol/sei-chain/releases/download/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/checksums.txt`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sha256sum`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` checksums.txt`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --ignore-missing`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`tar`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -xzf`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\" ${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`FILE`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`} `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`seid`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 0755`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` /usr/local/bin/seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Restart node`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` restart`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`]})})})}),_jsx(Tab,{title:`Build from source`,id:`build-from-source`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Stop node`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` stop`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Update binary`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` sei-chain`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` fetch`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --all`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` checkout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`new-versio`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`n`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`make`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` install`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Restart node`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` restart`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`]})})})})]}),`\n`,_jsx(Heading,{level:`3`,id:`major-updates`,children:`Major updates`}),`\n`,_jsx(_components.p,{children:`For major upgrades that introduce state-breaking changes:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Wait for the designated upgrade block height. You can find it in the upgrade\nproposal under ‘plan’.`}),`\n`,_jsx(_components.li,{children:`The node halts automatically.`}),`\n`,_jsx(_components.li,{children:`Update or replace the binary.`}),`\n`,_jsx(_components.li,{children:`Restart the node.`}),`\n`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Prebuilt binary`,id:`prebuilt-binary-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# After node halts`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=\u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`new-version`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`> `}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# the new release tag, e.g. v6.6.1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`FILE`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`sei-chain_`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`#`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`_linux_x86_64.tar.gz`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -fLO`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://github.com/sei-protocol/sei-chain/releases/download/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`FILE`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -fLO`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://github.com/sei-protocol/sei-chain/releases/download/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\"${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`VERSION`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/checksums.txt`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sha256sum`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` checksums.txt`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --ignore-missing`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`tar`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -xzf`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:\" ${\"}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`FILE`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`} `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`seid`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 0755`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` /usr/local/bin/seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` restart`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`]})})})}),_jsx(Tab,{title:`Build from source`,id:`build-from-source-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# After node halts`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` sei-chain`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` pull`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` checkout`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`new-versio`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`n`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`make`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` install`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` restart`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`]})})})})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Download the release archive (or build the new binary) before the halt\nheight. The swap then takes only seconds at upgrade time.`})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If you serve historical queries, set up a frozen node on the outgoing release\nbefore the halt height. See\n`,_jsx(_components.a,{href:`/node/frozen-nodes#prepare-for-each-upgrade`,children:`Prepare for each upgrade`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`performance-optimization`,children:`Performance optimization`}),`\n`,_jsx(_components.p,{children:`The results of performance optimizations can vary with your system’s hardware,\nworkload, and network conditions. Before you make any changes, research them\nand test them in a controlled environment. Make sure that they fit your\nspecific configuration and requirements. Always back up important data before\nyou make changes.`}),`\n`,_jsx(Heading,{level:`3`,id:`memory-management-sysctl-tuning`,children:`Memory management (sysctl tuning)`}),`\n`,_jsx(_components.p,{children:`Tuning memory management settings can help improve performance and stability,\nparticularly for high-load nodes. These settings control swap usage and the\nhandling of dirty (unwritten) pages in RAM.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`vm.swappiness`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Reduce swapping to disk, ensuring RAM is used efficiently before relying on slower swap space`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`vm.dirty_background_ratio`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 3`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # The percentage of system memory that can be filled with \"dirty\" pages before background writing begins`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`vm.dirty_ratio`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 10`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # The maximum percentage of system memory that can be filled with \"dirty\" pages before a full flush is triggered`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`vm.dirty_expire_centisecs`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 300`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Time (in hundredths of a second) before dirty data is written to disk`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`vm.dirty_writeback_centisecs`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 100`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # Frequency (in hundredths of a second) at which the system writes \"dirty\" pages to disk`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`network-stack-optimization`,children:`Network stack optimization`}),`\n`,_jsx(_components.p,{children:`Tuning the network stack can improve packet processing efficiency and\nthroughput, particularly for nodes that handle many peers and high\ntransaction volume.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`net.core.somaxconn`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 32768`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # max connections in queued`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`net.core.netdev_max_backlog`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 32768`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # packets allowed in queue before dropping incoming packets`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`net.ipv4.tcp_max_syn_backlog`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 16384`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # outstanding SYN requests (half-open connections) allowed before dropping new connections`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`net.core.rmem_max`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 16777216`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # receive buffer size for network sockets`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`net.core.wmem_max`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` =`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 16777216`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # send buffer size for network sockets`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`storage-optimization`,children:`Storage optimization`}),`\n`,_jsx(_components.p,{children:`Tuning storage settings can significantly reduce write latency and improve\ndatabase performance, especially for nodes that use NVMe SSDs.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`echo`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"none\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` > `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/sys/block/nvme0n1/queue/scheduler`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # disable I/O scheduler to reduce latency`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`blockdev`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --setra`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:` 4096`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` /dev/nvme0n1`}),_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` # readahead value to optimize sequential reads`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`backup-and-recovery`,children:`Backup and recovery`}),`\n`,_jsx(Heading,{level:`3`,id:`regular-backups`,children:`Regular backups`}),`\n`,_jsx(_components.p,{children:`Automate backups to avoid data loss:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`#!/bin/bash`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`BACKUP_DIR`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/backup/sei\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`DATE`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=$(`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`date`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` +%Y%m%d`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Stop service`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` stop`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Create backup`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`tar`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` czf`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $BACKUP_DIR`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/sei-backup-`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`$DATE`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`.tar.gz`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $HOME`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/.sei/`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Restart service`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` start`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`recovery-procedure`,children:`Recovery procedure`}),`\n`,_jsx(_components.p,{children:`If data is corrupted or accidentally deleted, restore it from a backup:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Stop node`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` stop`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Remove corrupted data`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`rm`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -rf`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $HOME`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/.sei/data/`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Restore from backup`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`tar`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` xzf`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` sei-backup-[date].tar.gz`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -C`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` /`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Restart node`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`systemctl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` start`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` seid`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`security-considerations`,children:`Security considerations`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Use firewalls and rate limiting to prevent attacks`}),`\n`,_jsx(_components.li,{children:`Keep your system and node software updated`}),`\n`,_jsx(_components.li,{children:`Secure SSH access with key-based authentication`}),`\n`,_jsx(_components.li,{children:`Protect validator keys with offline storage or hardware security modules\n(HSMs)`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For more detailed system and configuration guidelines, see the `,_jsx(_components.a,{href:`/node/advanced-config-monitoring`,children:`Advanced\nConfiguration and Monitoring Guide`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Sei Node Operations Guide","sidebarTitle":"Overview","description":"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.","keywords":["sei node","blockchain node","node configuration","seidb","node maintenance","system operations","rocksdb"],"href":"/node/node-operators"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Configuration management","slug":"configuration-management","depth":2,"children":[{"title":"Directory structure","slug":"directory-structure","depth":3,"children":[]},{"title":"Essential configuration parameters","slug":"essential-configuration-parameters","depth":3,"children":[]},{"title":"Network settings (config.toml)","slug":"network-settings-config-toml","depth":4,"children":[]},{"title":"Application settings (app.toml)","slug":"application-settings-app-toml","depth":4,"children":[]},{"title":"Default configurations","slug":"default-configurations","depth":3,"children":[]}]},{"title":"Database management","slug":"database-management","depth":2,"children":[{"title":"Architecture","slug":"architecture","depth":3,"children":[]},{"title":"SeiDB configuration","slug":"seidb-configuration","depth":3,"children":[]},{"title":"PebbleDB version encoding","slug":"pebbledb-version-encoding","depth":4,"children":[]},{"title":"Move off RocksDB","slug":"move-off-rocksdb","depth":3,"children":[]},{"title":"Giga Storage and Giga Executor","slug":"giga-storage-and-giga-executor","depth":3,"children":[]},{"title":"Database maintenance","slug":"database-maintenance","depth":3,"children":[]}]},{"title":"Service management","slug":"service-management","depth":2,"children":[{"title":"Systemd commands","slug":"systemd-commands","depth":3,"children":[]},{"title":"Log management","slug":"log-management","depth":3,"children":[]}]},{"title":"Update procedures","slug":"update-procedures","depth":2,"children":[{"title":"Minor updates","slug":"minor-updates","depth":3,"children":[]},{"title":"Major updates","slug":"major-updates","depth":3,"children":[]}]},{"title":"Performance optimization","slug":"performance-optimization","depth":2,"children":[{"title":"Memory management (sysctl tuning)","slug":"memory-management-sysctl-tuning","depth":3,"children":[]},{"title":"Network stack optimization","slug":"network-stack-optimization","depth":3,"children":[]},{"title":"Storage optimization","slug":"storage-optimization","depth":3,"children":[]}]},{"title":"Backup and recovery","slug":"backup-and-recovery","depth":2,"children":[{"title":"Regular backups","slug":"regular-backups","depth":3,"children":[]},{"title":"Recovery procedure","slug":"recovery-procedure","depth":3,"children":[]}]},{"title":"Security considerations","slug":"security-considerations","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"seilabs","siteName":"Sei Docs","title":"Sei Node Operations Guide - Sei Docs","contextualStarterQuestions":[{"_id":"6ad24abb2c0c3a193cb2f61d","deploymentId":"682e200b1012ca3b8f763c7d","questionText":"What are key P2P settings?","status":"active","generatedBy":"contextual","path":"node/node-operators","createdAt":"2026-10-16T16:03:07.986Z","updatedAt":"2026-10-16T16:03:07.986Z","__v":0},{"_id":"6ad24abb2c0c3a193cb2f61c","deploymentId":"682e200b1012ca3b8f763c7d","questionText":"Where are node config files stored?","status":"active","generatedBy":"contextual","path":"node/node-operators","createdAt":"2026-10-16T16:03:07.986Z","updatedAt":"2026-10-16T16:03:07.986Z","__v":0},{"_id":"6ad24abb2c0c3a193cb2f61b","deploymentId":"682e200b1012ca3b8f763c7d","questionText":"How do I configure a Sei node?","status":"active","generatedBy":"contextual","path":"node/node-operators","createdAt":"2026-10-16T16:03:07.986Z","updatedAt":"2026-10-16T16:03:07.986Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-16T16:02:59.410Z","originalFileLocation":"node/node-operators.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Sei Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Sei Node Operations Guide - Sei Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sei Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sei.io/node/node-operators\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://seilabs.mintlify.site/_mintlify/api/og/v2?division=Node+Operations\u0026amp;title=Sei+Node+Operations+Guide\u0026amp;description=Detailed+guide+for+running+and+maintaining+Sei+nodes.+Learn+about+configuration+management%2C+database+maintenance%2C+service+management%2C+and+update+procedures.\u0026amp;theme=3defe93b60e4f9f5b7f905ca\u0026amp;signature=59a917cd8d30fc82d20b2661324c3adc34846d9159cd6241cf976e1e594b2570\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Sei Node Operations Guide - Sei Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://seilabs.mintlify.site/_mintlify/api/og/v2?division=Node+Operations\u0026amp;title=Sei+Node+Operations+Guide\u0026amp;description=Detailed+guide+for+running+and+maintaining+Sei+nodes.+Learn+about+configuration+management%2C+database+maintenance%2C+service+management%2C+and+update+procedures.\u0026amp;theme=3defe93b60e4f9f5b7f905ca\u0026amp;signature=59a917cd8d30fc82d20b2661324c3adc34846d9159cd6241cf976e1e594b2570\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/seilabs/1tferBvdraLpuX9t/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sei Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#600014\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@SeiNetwork\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sei.io/node/node-operators\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/node/node-operators.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sei.io/#organization\",\"name\":\"Sei Docs\",\"url\":\"https://docs.sei.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/seilabs/KM_kZG8zqelKUw6O/logo/light.svg?fit=max\u0026auto=format\u0026n=KM_kZG8zqelKUw6O\u0026q=85\u0026s=1f2c5a9b7231bea8694c23e8043c5ce5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sei.io#website\",\"name\":\"Sei Docs\",\"url\":\"https://docs.sei.io\",\"publisher\":{\"@id\":\"https://docs.sei.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sei.io/node/node-operators#webpage\",\"url\":\"https://docs.sei.io/node/node-operators\",\"name\":\"Sei Node Operations Guide\",\"description\":\"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.\",\"dateModified\":\"2026-10-16T16:02:59.410Z\",\"isPartOf\":{\"@id\":\"https://docs.sei.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sei.io/node/node-operators#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sei.io/node/node-operators#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sei Docs\",\"item\":\"https://docs.sei.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sei Node Operations Guide\",\"item\":\"https://docs.sei.io/node/node-operators\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sei.io/node/node-operators#article\",\"headline\":\"Sei Node Operations Guide\",\"name\":\"Sei Node Operations Guide\",\"description\":\"Detailed guide for running and maintaining Sei nodes. Learn about configuration management, database maintenance, service management, and update procedures.\",\"url\":\"https://docs.sei.io/node/node-operators\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sei.io/node/node-operators#webpage\"},\"dateModified\":\"2026-10-16T16:02:59.410Z\",\"keywords\":\"sei node, blockchain node, node configuration, seidb, node maintenance, system operations, rocksdb\",\"publisher\":{\"@id\":\"https://docs.sei.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sei.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sei Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sei Docs","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Learn","pages":[{"title":"Learn","href":"/learn"}]},{"tab":"EVM","pages":[{"title":"EVM","href":"/evm"}]},{"tab":"Cookbook","pages":[{"title":"Cookbook","href":"/evm/cookbook"}]},{"tab":"Nodes","groups":[{"group":"Overview","pages":[{"title":"Node Operations on Sei","sidebarTitle":"Home","description":"Deploy and maintain Sei Network infrastructure with comprehensive guides for validators, RPC nodes, and archive nodes, including hardware requirements, installation steps, and operational best practices.","href":"/node"}]},{"group":"Node Operations","pages":[{"title":"Sei Node Operations Guide","sidebarTitle":"Overview","href":"/node/node-operators"},{"title":"Configure Nodes with seictl","sidebarTitle":"Seictl Setup Helper","description":"Install and use the seictl CLI to patch Sei node configuration and genesis files safely with merge-patch workflows.","href":"/node/seictl"},{"title":"Join the network using StateSync","sidebarTitle":"Statesync","href":"/node/statesync"},{"title":"Join the network using Snapshots","sidebarTitle":"Snapshot Sync","href":"/node/snapshot"},{"title":"Node Types","href":"/node/node-types"},{"title":"Troubleshooting","href":"/node/troubleshooting"},{"title":"Swagger API Documentation","sidebarTitle":"API configuration","href":"/node/swagger"},{"title":"Sei Validator Operations Guide","sidebarTitle":"Validator Operations Guide","href":"/node/validators"}]},{"group":"Advanced Operations","pages":[{"title":"Sei Node Advanced Configuration \u0026 Monitoring","sidebarTitle":"Advanced Configuration \u0026 Monitoring","href":"/node/advanced-config-monitoring"},{"title":"Giga SS Store Migration Guide","sidebarTitle":"Giga SS Store Migration","href":"/node/giga-storage-migration"},{"title":"Run frozen nodes for historical queries","sidebarTitle":"Frozen Nodes","href":"/node/frozen-nodes"},{"title":"Sei Technical Reference","sidebarTitle":"Technical Reference","href":"/node/technical-reference"}]}]},{"tab":"AI","pages":[{"title":"AI","href":"/ai"}]}]},"basePath":"","title":"Sei Node Operations Guide - Sei Docs","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}