Docs: Migrate blockchain state storage to RocksDB and add state migration guide #159
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The blockchain state storage backend has been migrated from SQLite to RocksDB. This is a significant architectural change aimed at improving performance and scalability. For existing nodes, a lazy migration process is performed in the background. When a state entry is requested, the node first checks an in-memory cache, then the RocksDB database. If not found, it falls back to the legacy
state_trietable in the SQLite database and migrates the entry to RocksDB. To facilitate a full migration, a newstate_syncfeature has been introduced. Node operators must perform a manual migration procedure on existing nodes by enabling this feature. This involves restoring from a checkpoint and settingdb.state_sync = truein the configuration file to replay blocks and populate the new RocksDB state database. A detailed guide for this process is available in the newdocs/state_migration.mddocument.