Resetting and snapshotting the blockchain
Database locations
The data of a blockchain application is stored in the following key-value stores:
- blockchain.db
-
Stores blocks, transactions and states.
- node.db
-
Stores peer data, or data unique to each node.
- forger.db
-
Stores forging data which is unique to each delegate. Important for enabling forging.
All databases are located under ~/.lisk/BAPP-NAME/data/
If plugins are registered in the application, they will have a separate key-value store for each plugin for the plugin-specific off-chain data under ~/.lisk/BAPP-NAME/plugins/data/
.
Resetting the blockchain
This will remove all existing on-chain data of the blockchain application!
Please note that the blockchain height will be reset back to 1 again the next time the application is started, and all existing accounts will be deleted. In addition, the genesis accounts will be reset to the state defined in the respective genesis block.
|
To reset the blockchain data of an application, it is therefore only necessary to reset the blockchain.db
.
This can be achieved by using the blockchain:reset
command of the application CLI.
Before using the command, ensure the application is stopped and is not running anymore. |
bin/run blockchain:reset
Creating snapshots of the blockchain
To export the blockchain data of an application, run the following command:
Before using the command, ensure the application is stopped and is not running anymore. |
$ bin/run blockchain:export
A command reference can be viewed by adding the --help
parameter:
% bin/run blockchain:export --help
Export to <FILE>.
USAGE
$ hello_app blockchain:export
OPTIONS
-d, --data-path=data-path Directory path to specify where the node data is stored. Environment variable
"LISK_DATA_PATH" can also be used.
-o, --output=output The output directory. Default will set to current working directory.
EXAMPLES
blockchain:export
blockchain:export --data-path ./data --output ./my/path/
Importing a snapshot
To import a snapshot of blockchain data, run the following command:
Before using the command, ensure the application is stopped and is not running anymore. |
bin/run blockchain:import blockchain.db.tar.gz
A command reference can be viewed by adding the --help
parameter:
% bin/run blockchain:import --help
Import from <FILE>.
USAGE
$ hello_app blockchain:import FILEPATH
ARGUMENTS
FILEPATH Path to the gzipped blockchain data.
OPTIONS
-d, --data-path=data-path Directory path to specify where the node data is stored. Environment variable
"LISK_DATA_PATH" can also be used.
-f, --force Delete and overwrite existing blockchain data
EXAMPLES
blockchain:import ./path/to/blockchain.db.tar.gz
blockchain:import ./path/to/blockchain.db.tar.gz --data-path ./lisk/
blockchain:import ./path/to/blockchain.db.tar.gz --data-path ./lisk/ --force