Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
c83a640
skills: Adds a new `[evm].enabled_legacy_sei_apis` config field that …
seidroid[bot] Aug 10, 2026
a137e4c
skills: eth_getBlockByNumber now returns null (per Ethereum spec) for…
seidroid[bot] Aug 10, 2026
5e6ec51
skills: IAVL backend is fully removed and SeiDB state-commit is now m…
seidroid[bot] Aug 10, 2026
e728194
skills: Adds a new `seid tendermint gen-autobahn-config` CLI command …
seidroid[bot] Aug 10, 2026
b4e4fb0
skills: Adds a new debug_traceTransactionProfile JSON-RPC method that…
seidroid[bot] Aug 10, 2026
e2b209e
skills: Adds a new `dump-flatkv` subcommand to the seidb tool and a `…
seidroid[bot] Aug 10, 2026
633bdf6
skills: The v6.5 release changelog references several developer-facin…
seidroid[bot] Aug 10, 2026
6b5e40a
skills: Adds two new seidb subcommands (import-flatkv-from-memiavl an…
seidroid[bot] Aug 10, 2026
2cd9879
skills: A new --persistent-state-dir flag was added to the tendermint…
seidroid[bot] Aug 10, 2026
3fafe67
skills: Adds a new seidb `migrate-evm-status` CLI subcommand, a new `…
seidroid[bot] Aug 10, 2026
4db3c6b
skills: The eth_getProof JSON-RPC endpoint now requires hex-encoded s…
seidroid[bot] Aug 10, 2026
c499bb7
skills: Pagination now enforces hard caps on limit (MaxLimit=1000), o…
seidroid[bot] Aug 10, 2026
b5184c3
skills: The tokenfactory DenomsFromCreator query (CLI, gRPC, and REST…
seidroid[bot] Aug 10, 2026
3805c6a
skills: The JSON-RPC endpoints sei_traceBlockByNumberExcludeTraceFail…
seidroid[bot] Aug 10, 2026
2a95b91
skills: A new `seidb evm-logical-digest` CLI subcommand was added to …
seidroid[bot] Aug 10, 2026
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
74 changes: 74 additions & 0 deletions references/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Architecture

## State Storage: SeiDB

Sei uses **SeiDB** for state storage. As of the IAVL removal, SeiDB state-commit (SC) is **mandatory** — the legacy IAVL backend has been fully removed and is no longer available as a fallback.

### State Commit (SC)

The state-commit layer is backed by **memIAVL** (an in-memory IAVL implementation with a write-ahead log and snapshotting). It is enabled via `sc-enable` in `app.toml`:

```toml
[state-commit]
# Enable defines if the state-commit should be enabled.
sc-enable = true
```

**`sc-enable` must be `true`.** If it is `false`, the node panics on startup:

```
panic: SeiDB state-commit (SC) must be enabled; IAVL backend has been fully deprecated
```

There is no IAVL fallback. memIAVL is the sole state-commit backend; it does not "override" or coexist with an IAVL db backend — the IAVL backend does not exist anymore.

### State Store (SS)

The optional state-store layer provides historical state for queries and is configured under `[state-store]`:

```toml
[state-store]
ss-enable = true
ss-backend = "pebbledb"
```

## Migration Notes

Node operators upgrading from a version that supported the IAVL backend must ensure `sc-enable = true` before upgrading. The following have been removed and no longer take effect:

### Removed CLI commands

- `seid compact` — compacted the application levelDB
- `seid debug dump-iavl [height]` (with `--db-path`/`-d`, `--output-dir`, `--module`/`-m`) — dumped IAVL data
- `seid prune` (with `--home`, `--app-db-backend`, `--pruning`, `--pruning-keep-recent`, etc.) — pruned app history states
- `seid latest_version` — printed the latest app DB version

### Removed `start` flags

- `--separate-orphan-storage`
- `--separate-orphan-versions-to-keep`
- `--num-orphan-per-file`
- `--orphan-dir`
- `--iavl-disable-fastnode`

### Removed `app.toml` config fields

- `iavl-cache-size`
- `iavl-disable-fastnode`
- `no-versioning`
- `separate-orphan-storage`
- `separate-orphan-versions-to-keep`
- `num-orphan-per-file`
- `orphan-dir`
- The entire `[iavl]` section (including `iavl.pruning`, `iavl.pruning-keep-recent`, `iavl.pruning-keep-every`, `iavl.pruning-interval`)

Only the top-level `pruning`, `pruning-keep-recent`, `pruning-keep-every`, and `pruning-interval` flags remain.

### Snapshots / restore

Legacy IAVL snapshot and restore via the rootmulti store are no longer supported. Attempting the legacy IAVL path returns an error:

```
legacy IAVL snapshots are no longer supported
legacy IAVL restore is no longer supported
```
Loading