Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion STYLE_GUIDE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sei Docs Style Guide

Check warning on line 1 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L1

Use sentence case for headings: 'Sei Docs Style Guide'.

This style guide contains general rules and principles to ensure the documentation is cohesive, useful, and organized.

Expand All @@ -6,7 +6,7 @@

This documentation strives to be:

### Beginner Friendly

Check warning on line 9 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L9

Use sentence case for headings: 'Beginner Friendly'.

The Sei community welcomes members from all walks of life. As such, the documentation should be understandable by anyone, including those who are new to Web3 or non-technical.

Expand All @@ -22,8 +22,8 @@

- To be clear and inclusive, avoid using jargon and obscure words where possible.
- Limit the number of clauses in a sentence and make sure that your points are structured.
- Avoid qualifying language, which is ~~quite~~ often ~~completely~~ unnecessary.

Check warning on line 25 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L25

'quite' is often unnecessary qualifying language — consider removing it.

Check warning on line 25 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L25

'completely' is often unnecessary qualifying language — consider removing it.
- Information should be simply organized and easy to find.

Check warning on line 26 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L26

'simply' is often unnecessary qualifying language — consider removing it.

### Self-explanatory

Expand Down Expand Up @@ -64,30 +64,30 @@
- **Reference**: Transactions, RPC reference, tokens, changelog, ecosystem contracts
- **Hardware Wallets**: Ledger integration with Ethers

### Cosmos-SDK (Deprecated)

Check warning on line 67 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L67

Use sentence case for headings: 'Cosmos-SDK (Deprecated)'.

> ⚠️ **Deprecation Notice**: Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only. For more details, see [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and [Proposal 99](https://seistream.app/proposals/99).

This section contains legacy documentation for Cosmos SDK functionality. New development should focus on the EVM.

### Operate (Node)

Check warning on line 73 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L73

Use sentence case for headings: 'Operate (Node)'.

The Operate section covers topics related to running Sei infrastructure. This is relevant for node operators, validators, and those looking to contribute to chain infrastructure.

**Contents include:**

- **Node Operations**: Overview, Seictl setup, statesync, snapshot sync, node types, troubleshooting, API configuration, validators, oracle price feeder
- **Advanced Operations**: Configuration & monitoring, RocksDB backend, technical reference
- **Advanced Operations**: Configuration & monitoring, Giga SS Store migration, technical reference

## Style Guidelines

Check warning on line 82 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L82

Use sentence case for headings: 'Style Guidelines'.

### Acronyms and Abbreviations

Check warning on line 84 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L84

Use sentence case for headings: 'Acronyms and Abbreviations'.

To maximize clarity, we should avoid acronyms and abbreviations where possible, especially for shorter, more ambiguous acronyms:

- Just use 'CosmWasm' instead of 'CW'

However, there are occasions where acronyms might be more easily understandable (e.g., NFT instead of Non-Fungible Token, RPC instead of Remote Procedure Call), or referred to very frequently.

Check warning on line 90 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L90

'very' is often unnecessary qualifying language — consider removing it.

In these cases, we should first use the spelled-out term followed by the shortened form in parentheses:

Expand Down Expand Up @@ -252,7 +252,7 @@
</Frame>
```

### Callouts and Admonitions

Check warning on line 255 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L255

Use sentence case for headings: 'Callouts and Admonitions'.

Use callouts to highlight important information. Mintlify supports the following callout types:

Expand Down
6 changes: 5 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,6 @@
"group": "Advanced Operations",
"pages": [
"node/advanced-config-monitoring",
"node/rocksdb-backend",
"node/giga-storage-migration",
"node/technical-reference"
]
Expand Down Expand Up @@ -899,6 +898,11 @@
"destination": "/node",
"permanent": true
},
{
"source": "/node/rocksdb-backend",
"destination": "/node/node-operators#seidb-configuration",
"permanent": true
},
{
"source": "/node/oracle-price-feeder",
"destination": "/learn/oracles",
Expand Down
19 changes: 4 additions & 15 deletions node/giga-storage-migration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: 'Giga SS Store Migration Guide'
sidebarTitle: 'Giga SS Store Migration'
description: 'Migrate a Sei RPC node to Giga SS Store: split EVM state into a dedicated state-store backend so non-EVM modules stop paying EVM write amplification.'
keywords: ['sei node', 'giga storage', 'seidb', 'state sync', 'evm ss', 'flatkv', 'rpc node', 'pebbledb', 'rocksdb']
keywords: ['sei node', 'giga storage', 'seidb', 'state sync', 'evm ss', 'flatkv', 'rpc node', 'pebbledb']

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] Removing 'rocksdb' here leaves no page in the docs carrying that keyword now that node/rocksdb-backend.mdx is deleted. Since the point of this PR is to reach RocksDB operators, keeping the keyword on at least one page (this one, or node-operators.mdx) helps site search and LLM retrieval surface the deprecation warning to exactly the audience that needs it.

---

Giga SS Store is the next step in Sei's storage evolution on top of [SeiDB](/node/node-operators#architecture).
Expand All @@ -15,7 +15,7 @@
| Layer | Cosmos backend | EVM backend |
|---|---|---|
| **SC** (State Commit, app hash) | `memiavl` | FlatKV |
| **SS** (State Store, historical queries) | single MVCC DB (PebbleDB or RocksDB) | dedicated EVM SS MVCC DB(s) under `data/evm_ss/` |
| **SS** (State Store, historical queries) | single PebbleDB MVCC database | dedicated EVM SS MVCC databases under `data/evm_ss/` |

Only the **SS** layer changes for this migration. SC layer config is untouched
and `memiavl` remains the authoritative source for the app hash, so this is
Expand Down Expand Up @@ -43,9 +43,6 @@

- EVM reads are served exclusively from a dedicated EVM SS database.
- Non-EVM modules no longer pay write amplification for EVM state.
- A backend change (PebbleDB ↔ RocksDB) can be combined with the same state
sync, since `ss-backend` drives both the Cosmos SS MVCC DB and every EVM SS
sub-DB.

## What's different about EVM SS

Expand All @@ -55,9 +52,9 @@
per-type sub-DB layout. Any EVM read that needs iteration must stay on the
Cosmos SS side.

## Migration Steps

Check warning on line 55 in node/giga-storage-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/giga-storage-migration.mdx#L55

Use sentence case for headings: 'Migration Steps'.

### Step 1: Update `app.toml`

Check warning on line 57 in node/giga-storage-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/giga-storage-migration.mdx#L57

Use sentence case for headings: 'Step 1: Update ********'.

Apply the following settings in `~/.sei/config/app.toml`:

Expand All @@ -69,8 +66,7 @@
[state-store]
ss-enable = true

# DBBackend for the Cosmos SS MVCC DB and for every EVM SS sub-DB.
# Supported: pebbledb, rocksdb. Default pebbledb.
# Use PebbleDB for the Cosmos SS MVCC DB and every EVM SS sub-DB.
ss-backend = "pebbledb"

# Route EVM state to the dedicated EVM SS backend.
Expand All @@ -80,14 +76,7 @@
evm-ss-split = true
```

If you want to switch SS backend in the same step:

- **PebbleDB → RocksDB**: set `ss-backend = "rocksdb"`, build `seid` with
`-tags rocksdbBackend`, and install RocksDB per the
[RocksDB Backend Guide](/node/rocksdb-backend). `ss-backend` drives both the
Cosmos SS MVCC DB and every EVM SS sub-DB, so a single setting flips both.
- No data migration tool is needed across backends — the state sync populates
the new layout.
<Warning>Keep `ss-backend = "pebbledb"` during this migration. RocksDB support for the state store will be deprecated and removed in upcoming Sei releases.</Warning>

### Step 2: State sync into the new layout

Expand Down Expand Up @@ -205,7 +194,7 @@

<Warning>Cleanly rolling back to `evm-ss-split = false` requires another state sync. Under `evm-ss-split = true`, EVM writes go only to the EVM SS DB, so Cosmos SS will not have those writes. Restarting with `evm-ss-split = false` stops opening the EVM SS DB, but EVM-state queries will miss anything written after the Giga state sync until you re-state-sync without the split.</Warning>

## FAQ

Check warning on line 197 in node/giga-storage-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/giga-storage-migration.mdx#L197

Use sentence case for headings: 'FAQ'.

### Where do the data files live after migrating?

Expand All @@ -214,7 +203,7 @@
- EVM SS data lives under `data/evm_ss/`.
- SC data (`memiavl` + FlatKV) is untouched by this migration.

### Does Giga SS Store change the app hash or consensus?

Check warning on line 206 in node/giga-storage-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/giga-storage-migration.mdx#L206

Use sentence case for headings: 'Does Giga SS Store change the app hash or consensus?'.

No. The SC layer is unchanged, so `memiavl` remains the authoritative source
for the app hash. Giga SS Store is a per-node SS change that is invisible to
Expand All @@ -241,7 +230,7 @@
translate into missing EVM state at query time. The safety checks above
block this scenario at startup.

### Does Giga SS Store support historical proofs?

Check warning on line 233 in node/giga-storage-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/giga-storage-migration.mdx#L233

Use sentence case for headings: 'Does Giga SS Store support historical proofs?'.

No, same as SeiDB. SS stores raw KVs and does not reconstruct IAVL-style
proofs.
14 changes: 6 additions & 8 deletions node/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
<Card horizontal title="Archive Nodes" icon="database" />
</CardGroup>

## Network Versions

Check warning on line 22 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L22

Use sentence case for headings: 'Network Versions'.

<VersionTable />

_Live binary versions, genesis, and seed peers — see the [technical reference](/node/technical-reference)._

## Hardware Requirements

Check warning on line 28 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L28

Use sentence case for headings: 'Hardware Requirements'.

| Component | Required |
| --------- | ------------------------------------------------------ |
Expand All @@ -34,7 +34,7 @@
| Storage | 2 TB NVMe SSD (high IOPS required) |
| Network | 2 Gbps with low latency |

## Installation & Setup Steps

Check warning on line 37 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L37

Use sentence case for headings: 'Installation & Setup Steps'.

<Steps>

Expand All @@ -47,13 +47,13 @@
sudo apt update && sudo apt upgrade -y
```

###### 2. Install Essential Packages

Check warning on line 50 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L50

Use sentence case for headings: '2. Install Essential Packages'.

```bash
sudo apt install make gcc git jq chrony curl lz4 wget tar build-essential -y
```

###### 3. Synchronize System Time

Check warning on line 56 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L56

Use sentence case for headings: '3. Synchronize System Time'.

```bash
sudo timedatectl set-timezone UTC
Expand All @@ -61,7 +61,7 @@
timedatectl
```

##### Install Go

Check warning on line 64 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L64

Use sentence case for headings: 'Install Go'.

You need Go only if you build `seid` from source. The prebuilt binary and Docker
install paths in the next step do not require it.
Expand All @@ -71,7 +71,7 @@
(e.g. [`v6.6.1`](https://github.com/sei-protocol/sei-chain/blob/v6.6.1/go.mod)) for its
exact requirement.

###### Installation Steps

Check warning on line 74 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L74

Use sentence case for headings: 'Installation Steps'.

```bash
# Check for existing Go installations — more than one entry means another copy
Expand Down Expand Up @@ -138,12 +138,10 @@
```

<Info>
Prebuilt binaries are attached from `v6.6.1` onward — for earlier versions, build
from source or use Docker. They are `linux/amd64` only, omit hardware Ledger
support, and don't include the optional
[RocksDB state-store backend](/node/rocksdb-backend). On other architectures, or
if you sign with a Ledger device, build from source or use Docker; a
RocksDB-enabled `seid` must be built from source.
Prebuilt binaries are attached from `v6.6.1` onward. For earlier versions,
build from source or use Docker. They are `linux/amd64` only and omit hardware
Ledger support. On other architectures, or if you sign with a Ledger device,
build from source or use Docker.
</Info>

<Note>
Expand Down Expand Up @@ -198,7 +196,7 @@
</Tab>
</Tabs>

##### Initialize Chain Files

Check warning on line 199 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L199

Use sentence case for headings: 'Initialize Chain Files'.

<Info>Default init mode is **full** (RPC/P2P bind to all interfaces). For **validator** or **seed** nodes, use `--mode validator` or `--mode seed` so RPC and P2P bind to localhost only. See the [Validator Operations Guide](/node/validators) for the full validator init example.</Info>

Expand Down Expand Up @@ -226,7 +224,7 @@
sed -i 's/persistent-peers = .*/persistent-peers = "'$PEERS'"/' ~/.sei/config/config.toml
```

##### Configure App Settings

Check warning on line 227 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L227

Use sentence case for headings: 'Configure App Settings'.

```bash
# Set minimum gas price (recommended; helps prevent spam transactions)
Expand Down Expand Up @@ -256,7 +254,7 @@

<Accordion title="Advanced Configuration">

#### Archive Node Setup

Check warning on line 257 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L257

Use sentence case for headings: 'Archive Node Setup'.

An archive node maintains the complete historical record of the chain. This requires disabling state sync and starting with a pre-existing database using a "snapshot".

Expand All @@ -270,7 +268,7 @@

**2. Configure Archive Node Peers** — To sync from the height your snapshot was created at, you need peers retaining a large amount of historical blocks. The node will require specific peers during initial sync, which can be changed at a later time.

#### Mempool Configuration

Check warning on line 271 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L271

Use sentence case for headings: 'Mempool Configuration'.

For optimal transaction handling and resource management, it is recommended to update the mempool settings in your `config.toml` file.

Expand Down Expand Up @@ -358,7 +356,7 @@
sudo systemctl start seid
```

##### Monitoring & Troubleshooting

Check warning on line 359 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L359

Use sentence case for headings: 'Monitoring & Troubleshooting'.

Check your node's status with these commands:

Expand Down Expand Up @@ -394,9 +392,9 @@

[View Complete Node Setup Guide](/node/node-operators)

## Node Resources

Check warning on line 395 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L395

Use sentence case for headings: 'Node Resources'.

### Node Setup

Check warning on line 397 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L397

Use sentence case for headings: 'Node Setup'.

<CardGroup cols={3}>
<Card horizontal title="Node Operations Guide" icon="server" href="/node/node-operators">
Expand All @@ -410,14 +408,14 @@
</Card>
</CardGroup>

### Advanced Operations

Check warning on line 411 in node/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/index.mdx#L411

Use sentence case for headings: 'Advanced Operations'.

<CardGroup cols={3}>
<Card horizontal title="Configuration & Monitoring" icon="gauge-simple-high" href="/node/advanced-config-monitoring">
Optimize your node's performance with advanced settings and monitoring tools.
</Card>
<Card horizontal title="RocksDB Backend" icon="database" href="/node/rocksdb-backend">
Run with RocksDB instead of the default backend.
<Card horizontal title="Giga SS Store Migration" icon="database" href="/node/giga-storage-migration">
Move EVM historical state into dedicated state-store databases on supported RPC nodes.
</Card>
<Card horizontal title="Technical Reference" icon="terminal" href="/node/technical-reference">
Detailed technical specifications, API endpoints, and commands for node operators.
Expand Down
12 changes: 8 additions & 4 deletions node/node-operators.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
including configuration management, maintenance procedures, and best practices
for stable and performant operations.

## Configuration Management

Check warning on line 12 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L12

Use sentence case for headings: 'Configuration Management'.

### Directory Structure

Check warning on line 14 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L14

Use sentence case for headings: 'Directory Structure'.

The Sei node configuration is stored in `$HOME/.sei/config/`:

Expand All @@ -31,9 +31,9 @@
[Default Configurations](#default-configurations) at the bottom of this
section.

### Essential Configuration Parameters

Check warning on line 34 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L34

Use sentence case for headings: 'Essential Configuration Parameters'.

#### Network Settings (config.toml)

Check warning on line 36 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L36

Use sentence case for headings: 'Network Settings (config.toml)'.

```toml
[p2p]
Expand All @@ -59,7 +59,7 @@
timeout-broadcast-tx-commit = "10s"
```

#### Application Settings (app.toml)

Check warning on line 62 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L62

Use sentence case for headings: 'Application Settings (app.toml)'.

```toml
# Minimum gas prices to prevent spam transactions
Expand Down Expand Up @@ -89,6 +89,7 @@
[state-store]
# Historical SS layer for queries. Required for any node serving RPC.
ss-enable = true
ss-backend = "pebbledb"
Comment thread
alexander-sei marked this conversation as resolved.
# 0 = keep everything; 100,000 is roughly 28 hours of pacific-1 history.
ss-keep-recent = 100000

Expand All @@ -97,12 +98,14 @@
rs-backend = "pebbledb"
```

### Default Configurations

Check warning on line 101 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L101

Use sentence case for headings: '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
canonical reference for every available knob and its default value.

<Warning>The generated `app.toml` below mirrors the latest tagged release and may still list RocksDB as a state-store option. Do not use RocksDB for new or resynced nodes. RocksDB support for the SeiDB state store will be deprecated and removed in upcoming Sei releases.</Warning>

<Tabs>
<Tab title="app.toml">

Expand Down Expand Up @@ -1349,7 +1352,7 @@
</Tab>
</Tabs>

## Database Management

Check warning on line 1355 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1355

Use sentence case for headings: 'Database Management'.

### Architecture

Expand All @@ -1366,15 +1369,16 @@
modes is set to a non-default value.
2. **State Store (SS)** — versioned raw key/value pairs used for historical
queries. Required for any node that serves RPC. The default backend is
**PebbleDB**; **RocksDB** is available for iteration-heavy workloads such
as archive nodes or RPC nodes that run a lot of `debug_trace*` (see the
[RocksDB Backend Guide](/node/rocksdb-backend) for build instructions).
**PebbleDB**. RocksDB support for this layer will be deprecated and removed
in upcoming Sei releases. Use PebbleDB for new nodes. Before upgrading,
resync any node that uses RocksDB onto PebbleDB through
[state sync](/node/statesync) or a [PebbleDB snapshot](/node/snapshot).

The legacy IAVL backend is still selectable via `sc-enable = false` but is
deprecated and slated for removal — new deployments and existing nodes
should run on SeiDB.

### SeiDB Configuration

Check warning on line 1381 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1381

Use sentence case for headings: 'SeiDB Configuration'.

The full set of knobs is in the auto-generated
[Default Configurations](#default-configurations) above. The block below
Expand Down Expand Up @@ -1420,7 +1424,7 @@
# serving RPC must keep it on.
ss-enable = true

# pebbledb (default) or rocksdb (faster iteration, archive-friendly).
# Use the default PebbleDB backend.
ss-backend = "pebbledb"

ss-async-write-buffer = 100
Expand Down Expand Up @@ -1448,7 +1452,7 @@
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

Check warning on line 1455 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1455

Use sentence case for headings: '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
Expand Down Expand Up @@ -1492,7 +1496,7 @@
occ_enabled = false
```

### Database Maintenance

Check warning on line 1499 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1499

Use sentence case for headings: 'Database Maintenance'.

The database is typically stable and can be left alone, although some attention
may be required:
Expand All @@ -1519,9 +1523,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

Check warning on line 1526 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1526

Use sentence case for headings: 'Service Management'.

### Systemd Commands

Check warning on line 1528 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1528

Use sentence case for headings: 'Systemd Commands'.

```bash
# Check service status
Expand All @@ -1540,7 +1544,7 @@
journalctl -fu seid -o cat
```

### Log Management

Check warning on line 1547 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1547

Use sentence case for headings: 'Log Management'.

Prevent logs from consuming excessive disk space by enabling rotation:

Expand All @@ -1561,7 +1565,7 @@
EOF
```

## Update Procedures

Check warning on line 1568 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1568

Use sentence case for headings: 'Update Procedures'.

<Info>
Upgrade with the same method you originally installed with: `make install`
Expand All @@ -1571,7 +1575,7 @@
`which -a seid` lists every copy.
</Info>

### Minor Updates

Check warning on line 1578 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1578

Use sentence case for headings: 'Minor Updates'.

For minor updates that are non-consensus-breaking:

Expand Down Expand Up @@ -1613,7 +1617,7 @@
</Tab>
</Tabs>

### Major Updates

Check warning on line 1620 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1620

Use sentence case for headings: 'Major Updates'.

For major upgrades that introduce state-breaking changes:

Expand Down Expand Up @@ -1657,7 +1661,7 @@
halt-height so the swap takes seconds at upgrade time.
</Tip>

## Performance Optimization

Check warning on line 1664 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1664

Use sentence case for headings: 'Performance Optimization'.

Performance optimizations can yield different results depending on your system's
hardware, workload, and network conditions. Before implementing any changes,
Expand All @@ -1665,7 +1669,7 @@
your specific configuration and requirements. Always back up important data
before making modifications.

### Memory Management (sysctl tuning)

Check warning on line 1672 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1672

Use sentence case for headings: 'Memory Management (sysctl tuning)'.

Optimizing memory management settings can help improve performance and
stability, particularly for high-load nodes. These settings control swap usage
Expand All @@ -1679,7 +1683,7 @@
vm.dirty_writeback_centisecs = 100 # Frequency (in hundredths of a second) at which the system writes "dirty" pages to disk
```

### Network Stack Optimization

Check warning on line 1686 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1686

Use sentence case for headings: '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
Expand All @@ -1693,7 +1697,7 @@
net.core.wmem_max = 16777216 # send buffer size for network sockets
```

### Storage Optimization

Check warning on line 1700 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1700

Use sentence case for headings: 'Storage Optimization'.

Optimizing storage settings can significantly reduce write latency and improve
database performance, especially for nodes using NVMe SSDs.
Expand All @@ -1703,9 +1707,9 @@
blockdev --setra 4096 /dev/nvme0n1 # readahead value to optimize sequential reads
```

## Backup and Recovery

Check warning on line 1710 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1710

Use sentence case for headings: 'Backup and Recovery'.

### Regular Backups

Check warning on line 1712 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1712

Use sentence case for headings: 'Regular Backups'.

Automate backups to avoid data loss:

Expand All @@ -1724,7 +1728,7 @@
systemctl start seid
```

### Recovery Procedure

Check warning on line 1731 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1731

Use sentence case for headings: 'Recovery Procedure'.

Restoring from backup in case of corruption or accidental deletion:

Expand All @@ -1742,7 +1746,7 @@
systemctl start seid
```

## Security Considerations

Check warning on line 1749 in node/node-operators.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/node-operators.mdx#L1749

Use sentence case for headings: 'Security Considerations'.

- Use firewalls and rate-limiting to prevent attacks
- Keep your system and node software updated
Expand Down
122 changes: 0 additions & 122 deletions node/rocksdb-backend.mdx

This file was deleted.

8 changes: 5 additions & 3 deletions node/snapshot.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@

Follow this guide to join an existing network through **snapshot sync**. To quickly spin up a fresh full node and join the network, it's recommended to restore from a snapshot instead of replaying all historical blocks.

## Snapshot Sync

Check warning on line 11 in node/snapshot.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/snapshot.mdx#L11

Use sentence case for headings: 'Snapshot Sync'.

Snapshot sync allows a new node to join a network by downloading a recent, compressed copy of the entire application state and extracting it directly into the data directory. This reduces the initial sync time from days to minutes.

<Warning>RocksDB support for the SeiDB state store will be deprecated and removed in upcoming Sei releases. Use a PebbleDB snapshot for new or resynced nodes, and keep `ss-backend = "pebbledb"` in `app.toml`. If your node currently uses RocksDB, resync it onto PebbleDB before upgrading to a release without RocksDB support.</Warning>
Comment thread
alexander-sei marked this conversation as resolved.
Outdated

## Snapshot Providers

Check warning on line 17 in node/snapshot.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/snapshot.mdx#L17

Use sentence case for headings: 'Snapshot Providers'.

You can select from various providers for downloading snapshots:

Expand Down Expand Up @@ -117,11 +119,11 @@
cp $HOME/priv_validator_state.json $HOME/.sei/data/priv_validator_state.json
```

4. **Enable SeiDB**
Make sure to enable `sei-db` in your config if it's not already enabled:
4. **Enable SeiDB and configure PebbleDB**
Make sure SeiDB is enabled and the state-store backend is PebbleDB:

```bash
sed -i.bak -E "/^\[state-commit\]/,/^\[.*\]/ s|^(sc-enable[[:space:]]*=[[:space:]]*).*$|\1true| ; /^\[state-store\]/,/^\[.*\]/ s|^(ss-enable[[:space:]]*=[[:space:]]*).*$|\1true|" $HOME/.sei/config/app.toml
sed -i.bak -E "/^\[state-commit\]/,/^\[.*\]/ s|^(sc-enable[[:space:]]*=[[:space:]]*).*$|\1true| ; /^\[state-store\]/,/^\[.*\]/ s|^(ss-enable[[:space:]]*=[[:space:]]*).*$|\1true| ; /^\[state-store\]/,/^\[.*\]/ s|^(ss-backend[[:space:]]*=[[:space:]]*).*$|\1\"pebbledb\"|" $HOME/.sei/config/app.toml
```

5. **Restart the Node**
Expand Down
6 changes: 6 additions & 0 deletions node/statesync.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@
---
Follow this guide to join an existing network through statesync. To quickly spin up a fresh full node and join in the network, it's recommended to sync through state sync.

## State Sync

Check warning on line 9 in node/statesync.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/statesync.mdx#L9

Use sentence case for headings: 'State Sync'.

State sync allows a new node to join a network by fetching a snapshot of the application state at a recent height instead of fetching and replaying all historical blocks. This can reduce the time needed to sync with the network from days to minutes.

<Warning>RocksDB support for the SeiDB state store will be deprecated and removed in upcoming Sei releases. Set `ss-backend = "pebbledb"` before you start state sync, especially when rebuilding a node that previously used RocksDB.</Warning>

## Clean Up

Check warning on line 15 in node/statesync.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/statesync.mdx#L15

Use sentence case for headings: 'Clean Up'.

If you are not starting a node from fresh, then you need to do some backups and clean ups.

Expand All @@ -37,7 +39,7 @@
cp $HOME/priv_validator_state.json $HOME/.sei/data/priv_validator_state.json
```

## Statesync script

Check warning on line 42 in node/statesync.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

node/statesync.mdx#L42

Use sentence case for headings: 'Statesync script'.

Set up the RPC servers for primary and secondary endpoints. You can use one of these RPC endpoints for Statesyning

Expand Down Expand Up @@ -112,6 +114,10 @@
# Set the persistent peers in the config.toml file to the specified State Sync Peer
sed -i.bak -e "s|^persistent-peers *=.*|persistent-peers = \"$STATE_SYNC_PEER\"|" \
$HOME/.sei/config/config.toml

# Use PebbleDB for the SeiDB state store
sed -i.bak -E '/^\[state-store\]/,/^\[.*\]/ s|^(ss-backend[[:space:]]*=[[:space:]]*).*$|\1"pebbledb"|' \
Comment thread
alexander-sei marked this conversation as resolved.
Outdated
$HOME/.sei/config/app.toml
```

Finally start the daemon:
Expand Down
Loading