open module sonr.chain.Config import "package://pkg.pkl-lang.org/pkl-pantry/pkl.toml@1.0.0#/toml.pkl" class Chain { version: String = "0.38.5" proxy_app: String = "tcp://127.0.0.1:26658" moniker: String = "node0" db_backend: String = "goleveldb" db_dir: String = "data" log_level: String = "info" log_format: String = "plain" genesis_file: String = "config/genesis.json" priv_validator_key_file: String = "config/priv_validator_key.json" priv_validator_state_file: String = "data/priv_validator_state.json" priv_validator_laddr: String = "" node_key_file: String = "config/node_key.json" abci: String = "socket" filter_peers: Boolean = false rpc: Rpc = new {} p2p: P2p = new {} mempool: Mempool = new {} statesync: StateSync = new {} blocksync: BlockSync = new {} consensus: Consensus = new {} storage: Storage = new {} tx_index: TxIndex = new {} instrumentation: Instrumentation = new {} } class Rpc { laddr: String = "tcp://0.0.0.0:26657" cors_allowed_origins: Listing = new {} cors_allowed_methods: Listing = new { "HEAD" "GET" "POST" } cors_allowed_headers: Listing = new { "Origin" "Accept" "Content-Type" "X-Requested-With" "X-Server-Time" } grpc_laddr: String = "" grpc_max_open_connections: Int = 900 unsafe: Boolean = false max_open_connections: Int = 900 max_subscription_clients: Int = 100 max_subscriptions_per_client: Int = 5 experimental_subscription_buffer_size: Int = 200 experimental_websocket_write_buffer_size: Int = 200 experimental_close_on_slow_client: Boolean = false timeout_broadcast_tx_commit: String = "10s" max_body_bytes: Int = 1000000 max_header_bytes: Int = 1048576 tls_cert_file: String = "" tls_key_file: String = "" pprof_laddr: String = "localhost:6060" } class P2p { laddr: String = "tcp://0.0.0.0:26656" external_address: String = "" seeds: String = "" persistent_peers: String = read("env:SONR_PERSISTENT_PEERS") ?? "" addr_book_file: String = "config/addrbook.json" addr_book_strict: Boolean = true max_num_inbound_peers: Int = 40 max_num_outbound_peers: Int = 10 unconditional_peer_ids: String = "" persistent_peers_max_dial_period: String = "0s" flush_throttle_timeout: String = "100ms" max_packet_msg_payload_size: Int = 1024 send_rate: Int = 5120000 recv_rate: Int = 5120000 pex: Boolean = true seed_mode: Boolean = false private_peer_ids: String = "" allow_duplicate_ip: Boolean = false handshake_timeout: String = "20s" dial_timeout: String = "3s" } class Mempool { type: String = "flood" recheck: Boolean = true broadcast: Boolean = true wal_dir: String = "" size: Int = 5000 max_txs_bytes: Int = 1073741824 cache_size: Int = 10000 `keep-invalid-txs-in-cache`: Boolean = false max_tx_bytes: Int = 1048576 max_batch_bytes: Int = 0 experimental_max_gossip_connections_to_persistent_peers: Int = 0 experimental_max_gossip_connections_to_non_persistent_peers: Int = 0 } class StateSync { enable: Boolean = false rpc_servers: String = "" trust_height: Int = 0 trust_hash: String = "" trust_period: String = "168h0m0s" discovery_time: String = "15s" temp_dir: String = "" chunk_request_timeout: String = "10s" chunk_fetchers: String = "4" } class BlockSync { version: String = "v0" } class Consensus { wal_file: String = "data/cs.wal/wal" timeout_propose: String = "3s" timeout_propose_delta: String = "500ms" timeout_prevote: String = "1s" timeout_prevote_delta: String = "500ms" timeout_precommit: String = "1s" timeout_precommit_delta: String = "500ms" timeout_commit: String = "5s" double_sign_check_height: Int = 0 skip_timeout_commit: Boolean = false create_empty_blocks: Boolean = true create_empty_blocks_interval: String = "0s" peer_gossip_sleep_duration: String = "100ms" peer_query_maj23_sleep_duration: String = "2s" } class Storage { discard_abci_responses: Boolean = false } class TxIndex { indexer: String = "kv" `psql-conn`: String = read("env:SONR_PSQL_CONN") ?? "" } class Instrumentation { prometheus: Boolean = false prometheus_listen_addr: String = ":26660" max_open_connections: Int = 3 namespace: String = "cometbft" } output { renderer = new toml.Renderer {} }