Table of Contents

How to Upgrade the Chia db

Upgrading the Chia db from v1 to v2 CAN be a very simple process. However, the reason you are reading this guide is most probably because you want to learn how to upgrade AFTER your drive is full and you don't want to sync from scratch.

We will go through three different ways:

  1. Upgrading the easy way
  2. Download v2 from a trusted source and replace v1
  3. Using an external SSD
  4. Using the SpaceFarmer Community Node

1. Updating the easy way

There are two prerequisites for upgrading the Chia db the easy way.

For further reference, see https://github.com/Chia-Network/chia-blockchain/wiki/FAQ#what-is-the-new-database.

2. Download and replace

The advantage of this method is that it is easy and has minimal downtime. The trick is to download the db right after the snapshot, so your node needs to do minimal syncing to catch up with the latest blockheight. The downside is that you need to trust the source from which you download the snapshot.

  1. Stop all chia processes
  2. go to C:\Users\%USERNAME%\.chia\mainnet\db and delete blockchain_v1_mainnet.sqlite
  3. download the v2 db from a source you trust and place it in the folder. Spacefarmers offers a daily snapshot here
  4. in your your config.yaml, replace under the full_node: section from database_path: db/blockchain_v1_CHALLENGE.sqlite to database_path: db/blockchain_v2_CHALLENGE.sqlite

3. Using an external SSD

3.1 Error when TMP folder full

The method above doesn't work if your TMP folder (which is C:\Users\%USERPROFILE%\Appdata\Local\Temp by default on Windows) is on the full drive.

You will attempt to do so, you get a pop-up with the following window somewhere in the process:

Chia.exe - Delayed Write Failed
Windows was unable to save all the data for the file \chiaDB\blockchain_v2_mainnet.sqlite: the data has been lost. 
This error may be caused if the device has been removed or the media is write-protected.

And in the CLI you will find the following:

Conversion failed with error: disk I/O error. 
The target v2 database is left in place (possibily in an incomplete state) D:\<PathforDB>\blockchain_v2_mainnet.sqlite

If your failure was caused by a full disk, ensure the volumes of your temporary- and target directory have sufficient free space. 
Your temporary directory may be ''C:\Users\%USERNAME%\Appdata\Local\Temp''
you can specify the "TMP" environment variable to control the temporary directory to be used. 

The work-around for this is to change your temporary folder to the new SSD (temporarily), by configuring your accounts Environmental Variables.

after you are done, don't forget to set back your temporary folder back to your original folder!

4. SpaceFarmer Community Node

It is also possible to farm without running a full node locally. Using the hooks that already exist in Chia 1.3+, we created the SpaceFarmer Community Node to allow farmers that cannot run their own node to continue farming.