-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathenrichments.go
More file actions
387 lines (369 loc) · 13.6 KB
/
enrichments.go
File metadata and controls
387 lines (369 loc) · 13.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
package seiconfig
// DefaultEnrichments returns the curated field metadata for every field
// where description, unit, hot-reload, or deprecation information is known.
// Call registry.EnrichAll(DefaultEnrichments()) after BuildRegistry().
func DefaultEnrichments() map[string][]FieldOption {
return map[string][]FieldOption{
// ---------------------------------------------------------------
// Top-level
// ---------------------------------------------------------------
"version": {
WithDescription("Config schema version. Set by tooling, not operators."),
},
"mode": {
WithDescription("Node operating mode: validator, full, seed, archive."),
},
// ---------------------------------------------------------------
// Chain
// ---------------------------------------------------------------
"chain.chain_id": {
WithDescription("The network chain ID. Sourced from genesis.json at init time."),
},
"chain.moniker": {
WithDescription("A human-readable name for this node, used in P2P and logging."),
},
"chain.min_gas_prices": {
WithDescription("Minimum gas prices a validator will accept for processing a transaction."),
},
"chain.halt_height": {
WithDescription("Block height at which the node will gracefully halt. 0 disables."),
WithUnit("blocks"),
},
"chain.halt_time": {
WithDescription("Minimum block time (Unix seconds) at which the node will halt. 0 disables."),
WithUnit("seconds"),
},
"chain.min_retain_blocks": {
WithDescription("Minimum block height offset from current for Tendermint block pruning. 0 keeps all."),
WithUnit("blocks"),
},
"chain.inter_block_cache": {
WithDescription("Enable inter-block caching for improved read performance."),
},
"chain.concurrency_workers": {
WithDescription("Number of workers for concurrent transaction execution. -1 for unlimited."),
},
"chain.occ_enabled": {
WithDescription("Enable optimistic concurrency control for transaction processing."),
},
// ---------------------------------------------------------------
// Network — RPC
// ---------------------------------------------------------------
"network.rpc.listen_address": {
WithDescription("TCP or UNIX socket address for the Tendermint RPC server."),
WithHotReload(),
},
"network.rpc.cors_allowed_origins": {
WithDescription("Origins allowed for cross-domain requests. '*' allows all."),
WithHotReload(),
},
"network.rpc.unsafe": {
WithDescription("Enable unsafe RPC commands like /dial-persistent-peers."),
},
"network.rpc.max_open_connections": {
WithDescription("Maximum simultaneous connections (including WebSocket). 0 for unlimited."),
WithUnit("connections"),
WithHotReload(),
},
"network.rpc.timeout_broadcast_tx_commit": {
WithDescription("How long to wait for a tx to be committed during /broadcast_tx_commit."),
},
"network.rpc.max_body_bytes": {
WithDescription("Maximum size of request body."),
WithUnit("bytes"),
},
"network.rpc.lag_threshold": {
WithDescription("Block lag threshold for the /lag_status health endpoint."),
WithUnit("blocks"),
WithHotReload(),
},
// ---------------------------------------------------------------
// Network — P2P
// ---------------------------------------------------------------
"network.p2p.listen_address": {
WithDescription("Address to listen for incoming P2P connections."),
},
"network.p2p.external_address": {
WithDescription("Address to advertise to peers for them to dial."),
},
"network.p2p.persistent_peers": {
WithDescription("Comma-separated list of node IDs to maintain persistent connections to."),
WithHotReload(),
},
"network.p2p.max_connections": {
WithDescription("Maximum connected peers (inbound + outbound)."),
WithUnit("connections"),
},
"network.p2p.pex": {
WithDescription("Enable the peer exchange reactor for peer discovery."),
},
"network.p2p.allow_duplicate_ip": {
WithDescription("Allow multiple peers from the same IP address."),
},
"network.p2p.send_rate": {
WithDescription("Rate at which packets can be sent per connection."),
WithUnit("bytes/sec"),
},
"network.p2p.recv_rate": {
WithDescription("Rate at which packets can be received per connection."),
WithUnit("bytes/sec"),
},
// ---------------------------------------------------------------
// Consensus
// ---------------------------------------------------------------
"consensus.create_empty_blocks": {
WithDescription("Whether to create blocks even when there are no transactions."),
},
"consensus.gossip_transaction_key_only": {
WithDescription("Gossip only transaction hashes instead of full transactions."),
},
"consensus.peer_gossip_sleep_duration": {
WithDescription("Sleep duration between rounds of peer gossip."),
},
"consensus.double_sign_check_height": {
WithDescription("Number of past blocks to check for double-signing. 0 disables."),
WithUnit("blocks"),
},
"consensus.unsafe_commit_timeout_override": {
WithDescription("Unsafe override for the Commit timeout consensus parameter."),
},
// ---------------------------------------------------------------
// Mempool
// ---------------------------------------------------------------
"mempool.size": {
WithDescription("Maximum number of transactions in the mempool."),
WithUnit("transactions"),
WithHotReload(),
},
"mempool.max_txs_bytes": {
WithDescription("Total size limit for all transactions in the mempool."),
WithUnit("bytes"),
},
"mempool.max_tx_bytes": {
WithDescription("Maximum size of a single transaction."),
WithUnit("bytes"),
},
"mempool.ttl_duration": {
WithDescription("Maximum time a transaction can remain in the mempool."),
},
"mempool.ttl_num_blocks": {
WithDescription("Maximum number of blocks a transaction can remain in the mempool."),
WithUnit("blocks"),
},
// ---------------------------------------------------------------
// State Sync
// ---------------------------------------------------------------
"state_sync.enable": {
WithDescription("Enable state sync to bootstrap from snapshots instead of replaying blocks."),
},
"state_sync.trust_height": {
WithDescription("Height of a trusted block for light client verification."),
WithUnit("blocks"),
},
"state_sync.trust_hash": {
WithDescription("Hash of the trusted block (hex-encoded)."),
},
"state_sync.trust_period": {
WithDescription("Trust period for light client verification. Should be < unbonding period."),
},
"state_sync.use_local_snapshot": {
WithDescription("Use a local snapshot for state sync instead of discovering from peers."),
},
// ---------------------------------------------------------------
// Storage
// ---------------------------------------------------------------
"storage.db_backend": {
WithDescription("Database backend: goleveldb, cleveldb, boltdb, rocksdb."),
},
"storage.db_path": {
WithDescription("Path to the database directory relative to the home directory."),
},
"storage.pruning": {
WithDescription("Pruning strategy: default, nothing, everything, custom."),
},
"storage.pruning_keep_recent": {
WithDescription("Number of recent states to keep when pruning strategy is 'custom'."),
},
"storage.pruning_interval": {
WithDescription("Block interval between pruning operations when strategy is 'custom'."),
WithUnit("blocks"),
},
"storage.snapshot_interval": {
WithDescription("Block interval for state sync snapshot creation. 0 disables."),
WithUnit("blocks"),
},
"storage.snapshot_keep_recent": {
WithDescription("Number of recent snapshots to keep. 0 keeps all."),
},
"storage.compaction_interval": {
WithDescription("Interval between forced LevelDB compaction. 0 disables."),
WithUnit("seconds"),
},
// Storage — State Commit
"storage.state_commit.enable": {
WithDescription("Enable SeiDB state-commit layer (replaces IAVL with MemIAVL)."),
},
"storage.state_commit.write_mode": {
WithDescription("EVM write routing: cosmos_only, dual_write, split_write, evm_only."),
},
"storage.state_commit.read_mode": {
WithDescription("EVM read routing: cosmos_only, evm_first, split_read."),
},
// Storage — State Store
"storage.state_store.enable": {
WithDescription("Enable SeiDB state-store for historical queries."),
},
"storage.state_store.backend": {
WithDescription("State store backend: pebbledb, rocksdb."),
},
"storage.state_store.keep_recent": {
WithDescription("Number of recent versions to keep. 0 keeps all."),
WithUnit("versions"),
},
"storage.state_store.prune_interval_seconds": {
WithDescription("Interval between state store pruning operations."),
WithUnit("seconds"),
},
// ---------------------------------------------------------------
// Tx Index
// ---------------------------------------------------------------
"tx_index.indexer": {
WithDescription("Transaction indexer backends. Options: null, kv, psql."),
},
// ---------------------------------------------------------------
// EVM
// ---------------------------------------------------------------
"evm.http_enabled": {
WithDescription("Enable the EVM JSON-RPC HTTP server."),
},
"evm.http_port": {
WithDescription("Port for the EVM JSON-RPC HTTP server."),
},
"evm.ws_enabled": {
WithDescription("Enable the EVM JSON-RPC WebSocket server."),
},
"evm.ws_port": {
WithDescription("Port for the EVM JSON-RPC WebSocket server."),
},
"evm.simulation_gas_limit": {
WithDescription("Maximum gas limit for eth_call and eth_estimateGas simulations."),
WithUnit("gas"),
},
"evm.cors_origins": {
WithDescription("CORS allowed origins for EVM RPC, comma-separated. '*' allows all."),
WithHotReload(),
},
"evm.max_tx_pool_txs": {
WithDescription("Maximum transactions to pull from the mempool for EVM."),
WithUnit("transactions"),
},
"evm.deny_list": {
WithDescription("RPC methods that should immediately fail (e.g. debug_traceBlockByNumber)."),
WithHotReload(),
},
"evm.max_log_no_block": {
WithDescription("Maximum logs returned when block range is open-ended."),
},
"evm.max_blocks_for_log": {
WithDescription("Maximum block range for eth_getLogs queries."),
WithUnit("blocks"),
},
"evm.max_concurrent_trace_calls": {
WithDescription("Maximum concurrent debug_trace calls. 0 for unlimited."),
},
"evm.max_trace_lookback_blocks": {
WithDescription("Maximum blocks to look back for tracing. -1 for unlimited (archive)."),
WithUnit("blocks"),
},
"evm.trace_timeout": {
WithDescription("Timeout for each trace call."),
},
"evm.worker_pool_size": {
WithDescription("Number of workers in the EVM RPC worker pool. 0 for default."),
},
// ---------------------------------------------------------------
// API
// ---------------------------------------------------------------
"api.rest.enable": {
WithDescription("Enable the Cosmos REST API server."),
},
"api.rest.address": {
WithDescription("Address for the REST API server."),
},
"api.rest.swagger": {
WithDescription("Enable Swagger documentation endpoint."),
},
"api.grpc.enable": {
WithDescription("Enable the gRPC server."),
},
"api.grpc.address": {
WithDescription("Address for the gRPC server."),
},
"api.grpc_web.enable": {
WithDescription("Enable the gRPC-Web proxy server."),
},
"api.grpc_web.address": {
WithDescription("Address for the gRPC-Web server."),
},
// ---------------------------------------------------------------
// Metrics
// ---------------------------------------------------------------
"metrics.enabled": {
WithDescription("Enable Prometheus metrics collection and serving."),
},
"metrics.prometheus_listen_addr": {
WithDescription("Address for the Prometheus metrics endpoint."),
},
"metrics.namespace": {
WithDescription("Metrics namespace prefix for all emitted metrics."),
},
"metrics.prometheus_retention_time": {
WithDescription("How long to retain Prometheus metrics in memory."),
WithUnit("seconds"),
},
// ---------------------------------------------------------------
// Logging
// ---------------------------------------------------------------
"logging.level": {
WithDescription("Log level: debug, info, warn, error."),
WithHotReload(),
},
"logging.format": {
WithDescription("Log format: plain, text, json."),
},
// ---------------------------------------------------------------
// WASM
// ---------------------------------------------------------------
"wasm.query_gas_limit": {
WithDescription("Maximum gas for CosmWasm smart query execution."),
WithUnit("gas"),
},
"wasm.lru_size": {
WithDescription("Size of the CosmWasm compiled module LRU cache."),
},
// ---------------------------------------------------------------
// Giga Executor
// ---------------------------------------------------------------
"giga_executor.enabled": {
WithDescription("Enable the Giga parallel execution engine."),
},
"giga_executor.occ_enabled": {
WithDescription("Enable OCC within the Giga executor."),
},
// ---------------------------------------------------------------
// Self-Remediation
// ---------------------------------------------------------------
"self_remediation.p2p_no_peers_restart_window_seconds": {
WithDescription("Restart if no P2P peers available for this duration. 0 disables."),
WithUnit("seconds"),
},
"self_remediation.blocks_behind_threshold": {
WithDescription("Restart if node falls this many blocks behind. 0 disables."),
WithUnit("blocks"),
},
"self_remediation.restart_cooldown_seconds": {
WithDescription("Minimum time between self-remediation restarts."),
WithUnit("seconds"),
},
}
}