-
Notifications
You must be signed in to change notification settings - Fork 4
docs(giga): rework Sei Giga pages for whitepaper v2.0 #42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,9 +9,9 @@ | |
| including configuration management, maintenance procedures, and best practices | ||
| for stable and performant operations. | ||
|
|
||
| ## Configuration Management | ||
|
|
||
| ### Directory Structure | ||
|
|
||
| The Sei node configuration is stored in `$HOME/.sei/config/`: | ||
|
|
||
|
|
@@ -31,9 +31,9 @@ | |
| [Default Configurations](#default-configurations) at the bottom of this | ||
| section. | ||
|
|
||
| ### Essential Configuration Parameters | ||
|
|
||
| #### Network Settings (config.toml) | ||
|
|
||
| ```toml | ||
| [p2p] | ||
|
|
@@ -59,7 +59,7 @@ | |
| timeout-broadcast-tx-commit = "10s" | ||
| ``` | ||
|
|
||
| #### Application Settings (app.toml) | ||
|
|
||
| ```toml | ||
| # Minimum gas prices to prevent spam transactions | ||
|
|
@@ -97,7 +97,7 @@ | |
| rs-backend = "pebbledb" | ||
| ``` | ||
|
|
||
| ### Default Configurations | ||
|
|
||
| The full unmodified `app.toml`, `config.toml`, and `client.toml` produced by | ||
| `seid init` against the latest tagged `seid` release. Use these as the | ||
|
|
@@ -518,14 +518,14 @@ | |
| ############################################################################### | ||
|
|
||
| [giga_executor] | ||
| # enabled controls whether to use the Giga executor (evmone-based) instead of geth's interpreter. | ||
| # This is an experimental feature for improved EVM throughput. | ||
| # Default: false | ||
| # enabled controls whether to use the Giga executor instead of the legacy execution path. | ||
| # Improves EVM throughput. | ||
| # Default: false through v6.5.x; true from the v6.6 release line. | ||
| enabled = false | ||
|
|
||
| # 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: false | ||
| # Default: false through v6.5.x; true from the v6.6 release line. | ||
| occ_enabled = false | ||
|
|
||
| ############################################################################### | ||
|
|
@@ -1364,7 +1364,7 @@ | |
| </Tab> | ||
| </Tabs> | ||
|
|
||
| ## Database Management | ||
|
|
||
| ### Architecture | ||
|
|
||
|
|
@@ -1389,7 +1389,7 @@ | |
| deprecated and slated for removal — new deployments and existing nodes | ||
| should run on SeiDB. | ||
|
|
||
| ### SeiDB Configuration | ||
|
|
||
| The full set of knobs is in the auto-generated | ||
| [Default Configurations](#default-configurations) above. The block below | ||
|
|
@@ -1450,10 +1450,9 @@ | |
| # snapshot creation. | ||
| ss-prune-interval = 600 | ||
|
|
||
| # Optional EVM SS routing — same semantics as the SC modes above. Leave on | ||
| # cosmos_only unless you have completed the Giga SS Store migration. | ||
| evm-ss-write-mode = "cosmos_only" | ||
| evm-ss-read-mode = "cosmos_only" | ||
| # EVM state-store split. Leave false unless you have completed the Giga | ||
| # SS Store migration (RPC nodes only); see the migration guide. | ||
| evm-ss-split = false | ||
| evm-ss-separate-dbs = false | ||
|
|
||
| [receipt-store] | ||
|
|
@@ -1468,51 +1467,39 @@ | |
| snapshot creation. Too-large (less frequent) intervals mean pruning takes | ||
| longer overall, which can cause missed blocks and excessive resync time. | ||
|
|
||
| ### Giga Storage and Giga Executor | ||
|
|
||
| These are two **separate** opt-in features that ship in newer `seid` | ||
| releases. Both default to off; only enable them deliberately and after | ||
| following the relevant migration guide. | ||
| These are two **separate** features that ship in newer `seid` releases. | ||
|
|
||
| **Giga Storage** repartitions SeiDB so EVM state lives in its own | ||
| databases at both the SC and SS layers, freeing non-EVM modules from EVM | ||
| write amplification. | ||
|
|
||
| <Info>For step-by-step instructions — including the full state-sync flow, startup verification, safety checks, and rollback — see the [Giga SS Store Migration Guide](/node/giga-storage-migration). The snippet below is just the resulting `app.toml` shape.</Info> | ||
|
|
||
|
|
||
| ```toml | ||
| [state-commit] | ||
| sc-write-mode = "dual_write" # write EVM data to memiavl AND FlatKV | ||
| sc-read-mode = "split_read" # read EVM data from FlatKV | ||
| sc-enable-lattice-hash = true # required for split-mode app-hash equality | ||
|
|
||
| [state-store] | ||
| evm-ss-write-mode = "split_write" | ||
| evm-ss-read-mode = "split_read" | ||
| ``` | ||
|
|
||
| Enabling Giga Storage requires a fresh state sync — flipping the EVM SS | ||
| modes on a node with existing data fails the startup safety checks 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](/node/giga-storage-migration) and is | ||
| write amplification. It is opt-in on every release, and enabling it | ||
| requires a fresh state sync: turning on the EVM SS split on a node with | ||
| existing data fails the startup safety checks, because the new EVM SS DB | ||
| starts empty while Cosmos SS already has history. The full procedure, | ||
| including the exact `app.toml` keys, startup verification, safety checks, | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [blocker] This points operators to the Giga SS Store Migration Guide for "the exact The deleted TOML block was the only place documenting the SC half — in particular Either keep a short SC-layer snippet here, or add an SC section to the migration guide before pointing at it as the source of truth. |
||
| and rollback, is in the | ||
| [Giga SS Store Migration Guide](/node/giga-storage-migration). It is | ||
| currently supported on **RPC nodes only**; validators and archive nodes are | ||
| not yet covered. | ||
|
|
||
| **Giga Executor** is independent of Giga Storage. It swaps the EVM | ||
| interpreter from go-ethereum's geth to an evmone-based executor for | ||
| higher throughput, with optional OCC parallelism on top: | ||
| **Giga Executor** is independent of Giga Storage. It routes EVM | ||
| transactions through the Giga execution engine, built on Sei's go-ethereum | ||
| fork, instead of the legacy execution path, with optional OCC parallelism | ||
| on top. It is disabled by default through v6.5.x and enabled by default, | ||
| together with OCC, from the v6.6 release line: | ||
|
|
||
| ```toml | ||
| [giga_executor] | ||
| # Use the evmone-based executor instead of geth's interpreter. Experimental. | ||
| # Use the Giga execution engine instead of the legacy path. | ||
| # Default: false through v6.5.x; true from the v6.6 release line. | ||
| enabled = false | ||
| # Run Giga-executed txs in parallel with Optimistic Concurrency Control. | ||
| # Default: false through v6.5.x; true from the v6.6 release line. | ||
| occ_enabled = false | ||
| ``` | ||
|
|
||
| ### Database Maintenance | ||
|
|
||
| The database is typically stable and can be left alone, although some attention | ||
| may be required: | ||
|
|
@@ -1539,9 +1526,9 @@ | |
|
|
||
| <Warning>The wipe command above deletes the entire local database (everything except `priv_validator_state.json`) and the `wasm` folder. It does not compact data in place — after running it, the node must be re-synced from a [snapshot](/node/snapshot) or via [state sync](/node/statesync) before it can serve traffic again.</Warning> | ||
|
|
||
| ## Service Management | ||
|
|
||
| ### Systemd Commands | ||
|
|
||
| ```bash | ||
| # Check service status | ||
|
|
@@ -1560,7 +1547,7 @@ | |
| journalctl -fu seid -o cat | ||
| ``` | ||
|
|
||
| ### Log Management | ||
|
|
||
| Prevent logs from consuming excessive disk space by enabling rotation: | ||
|
|
||
|
|
@@ -1581,9 +1568,9 @@ | |
| EOF | ||
| ``` | ||
|
|
||
| ## Update Procedures | ||
|
|
||
| ### Minor Updates | ||
|
|
||
| For minor updates that are non-consensus-breaking: | ||
|
|
||
|
|
@@ -1601,7 +1588,7 @@ | |
| sudo systemctl restart seid | ||
| ``` | ||
|
|
||
| ### Major Updates | ||
|
|
||
| For major upgrades that introduce state-breaking changes: | ||
|
|
||
|
|
@@ -1625,7 +1612,7 @@ | |
| with minimal downtime. | ||
| </Tip> | ||
|
|
||
| ## Performance Optimization | ||
|
|
||
| Performance optimizations can yield different results depending on your system's | ||
| hardware, workload, and network conditions. Before implementing any changes, | ||
|
|
@@ -1633,7 +1620,7 @@ | |
| your specific configuration and requirements. Always back up important data | ||
| before making modifications. | ||
|
|
||
| ### Memory Management (sysctl tuning) | ||
|
|
||
| Optimizing memory management settings can help improve performance and | ||
| stability, particularly for high-load nodes. These settings control swap usage | ||
|
|
@@ -1647,7 +1634,7 @@ | |
| vm.dirty_writeback_centisecs = 100 # Frequency (in hundredths of a second) at which the system writes "dirty" pages to disk | ||
| ``` | ||
|
|
||
| ### Network Stack Optimization | ||
|
|
||
| Tuning the network stack can enhance packet processing efficiency and | ||
| throughput, particularly for nodes handling a large number of peers and high | ||
|
|
@@ -1661,7 +1648,7 @@ | |
| net.core.wmem_max = 16777216 # send buffer size for network sockets | ||
| ``` | ||
|
|
||
| ### Storage Optimization | ||
|
|
||
| Optimizing storage settings can significantly reduce write latency and improve | ||
| database performance, especially for nodes using NVMe SSDs. | ||
|
|
@@ -1671,9 +1658,9 @@ | |
| blockdev --setra 4096 /dev/nvme0n1 # readahead value to optimize sequential reads | ||
| ``` | ||
|
|
||
| ## Backup and Recovery | ||
|
|
||
| ### Regular Backups | ||
|
|
||
| Automate backups to avoid data loss: | ||
|
|
||
|
|
@@ -1692,7 +1679,7 @@ | |
| systemctl start seid | ||
| ``` | ||
|
|
||
| ### Recovery Procedure | ||
|
|
||
| Restoring from backup in case of corruption or accidental deletion: | ||
|
|
||
|
|
@@ -1710,7 +1697,7 @@ | |
| systemctl start seid | ||
| ``` | ||
|
|
||
| ## Security Considerations | ||
|
|
||
| - Use firewalls and rate-limiting to prevent attacks | ||
| - Keep your system and node software updated | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[suggestion] The comment says the default is
truefrom v6.6, but the sample immediately below setsenabled = false(same forocc_enabledon line 528). In a referenceapp.tomlthat operators copy from, this reads as "the recommended value is false" and silently contradicts the stated default. Consider showingenabled = truewith a# false through v6.5.xnote, or restructuring as a version-conditional callout.