Skip to content

Commit

Permalink
feat: add reset-state guide (#515)
Browse files Browse the repository at this point in the history
  • Loading branch information
MSevey authored Nov 21, 2024
1 parent 3b3ef3b commit 8c1d255
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,10 @@ function sidebarHome() {
text: "Restart your rollup",
link: "/guides/restart-rollup",
},
{
text: "Reset your chain's state",
link: "/guides/reset-state",
},
{
text: "Run a rollup full node",
link: "/guides/full-node",
Expand Down
112 changes: 112 additions & 0 deletions guides/reset-state.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# How to reset the state of your chain

This guide will walk you through how you reset the state of your chain.

:::warning Disclaimer
By definition, reseting the state is deleting your chain's data. Make sure you understand the implications of this prior to completion this guide.
:::

Some reason you might need to reset the state of your chain are:
* During testing and development
* During upgrades with breaking changes
* Hardforks

## Prerequisities

In order to complete this guide, you will need to have completed either the [quick start tutorial](/tutorials/quick-start.md) or the [build our chain tutorial](/tutorials/wordle.md).

## Quick Start

When you run your chain with `rollkit start` you will create a `.rollkit` directory in your root directory.

This directory will look like the following.

```bash
tree $HOME/.rollkit

├── config
│   ├── config.toml
│   ├── genesis.json
│   ├── node_key.json
│   └── priv_validator_key.json
└── data
├── priv_validator_state.json
└── rollkit
├── 000001.sst
├── 000001.vlog
├── 000002.sst
├── 000002.vlog
├── DISCARD
├── KEYREGISTRY
└── MANIFEST
```

To reset the state of the chain, delete the entire `.rollkit` directory.

```bash
rm -rf $HOME/.rollkit
```

When you launch your chain again with `rollkit start` your `.rollkit` directory will be re-created and you will see your chain starting at block height 1 again.

## Wordle

When you ran your wordle chain in the [build your chain turtorial](/tutorials/wordle.md), it created a `.wordle` directory.

This directory will look like the following:

```bash
tree $HOME/.wordle

├── config
│   ├── app.toml
│   ├── client.toml
│   ├── config.toml
│   ├── genesis.json
│   ├── gentx
│   │   └── gentx-6e46bd1f53acead98b43e63fcf2bd5435499350d.json
│   ├── node_key.json
│   └── priv_validator_key.json
├── data
│   ├── application.db
│   │   ├── 000001.log
│   │   ├── CURRENT
│   │   ├── LOCK
│   │   ├── LOG
│   │   └── MANIFEST-000000
│   ├── priv_validator_state.json
│   ├── rollkit
│   │   ├── 000001.sst
│   │   ├── 000001.vlog
│   │   ├── DISCARD
│   │   ├── KEYREGISTRY
│   │   └── MANIFEST
│   └── snapshots
│   └── metadata.db
│   ├── 000001.log
│   ├── CURRENT
│   ├── LOCK
│   ├── LOG
│   └── MANIFEST-000000
└── keyring-test
├── 4a90e750914792c2d7f98775c13a588d9d304bd0.address
├── 53dab037ac3bd380f4a9192b2c6eedbe95fce180.address
├── alice.info
└── bob.info
```

The directories you need to delete to reset your state are in the `.wordle/data` directory.

```bash
$HOME/.wordle/data/application.db
$HOME/.wordle/data/rollkit
$HOME/.wordle/data/snapshots
```

You can delete them with the following command:

```bash
rollkit tendermint unsafe-reset-all
```

When you launch your chain again with your `rollkit start <flags>` command, these data directories will be re-created and you will see your chain starting at block height 1 again.

0 comments on commit 8c1d255

Please sign in to comment.