Automated fd-cli usage on Windows with PowerShell

Introduction

FD-CLI is a tool which can recovery missing 7/8. It has been designed in a way so it could be used with all Chia forks. And while we are currently working on incorporating this functionality into Flora, people are willing to still use its stand-alone version in order to recover coins from other Forks.
That is why this post was created. If you are not interested in the details, and just want to recover your coins, first install software listed in prerequisites section and grab the all-in-one PowerShell script. If you would like to know more then just read the whole article 🙂

Automated recovery (PowerShell)

Prerequisites

You need to have Python, Git and Visual C++ Redistributable package on your computer. Downloads and install latest releases from below links:
Git: Git – Downloading Package (git-scm.com)
Python: Git – Downloading Package (git-scm.com)
Microsoft Visual C++ Redistributable Visual C++ Redistributable (it is possible that you have this one already on your computer. Without this installed you will receive errors about missing DLLs and python packages)

All-in-one PowerShell script

This script has been designed to automate your work, and what it does is:

  • make the recovery easier for other forks
  • makes a check if you have fd-cli, if not then clones the repository
  • log all the outputs to a log file (Userprofile\fd-cli\fd-cli-output.log)
  • can be run with as low parameters as possible
  • can be run in a loop inside script, so you could leave it running and it will relaunch recovery eg each day or each week).
  • support multiple forks as parameter and will run recovery for all of them in a loop
  • Automatically finds a wallet file. If there are multiple wallet files present, their details will be printed on screen.
  • Automatically finds Blockchain DB file.
  • Automatically finds rpc port for each Fork.

Usage details are available on GitHub: Flora-Network/fd-cli (github.com)
Script can be downloaded from the releases page of fd-cli repository: Release Initial release of Windows Powershell script · Flora-Network/fd-cli (github.com)

Manual recovery using fd-cli

NOTE: This section is a separate usage guide, not required if you are using the PowerShell script

FD-CLI Installation

Installation can be performed in Windows Bash, Git Bash (application installed with Git) or in Powershell

git clone https://github.com/Flora-Network/fd-cli.git
cd fd-cli
python3 -m venv venv
source venv/bin/activate
pip install -e . --extra-index-url https://pypi.chia.net/simple/

FD-CLI Usage

Full usage guide has been described on the readme page on Github GitHub – Flora-Network/fd-cli.
At first GitHub guide has been written for Linux users. And while this can be easily adopted for Windows, we found it challenging for Windows users. (That is why we have created PowerShell script for Windows users).
The only thing that you have to do before running fd-cli is to set proper environment variables and put your individual paths. Setting variables looks the same for Linux and Git Bash
Linux/Git Bash example:

export FD_CLI_BC_DB_PATH=$HOME/.flora/mainnet/db/blockchain_v1_mainnet.sqlite

Powershell example:

$Env:FD_CLI_BC_DB_PATH = "$Env:Userprofile/.flora/mainnet/db/blockchain_v1_mainnet.sqlite"

If you want to use our tool with other forks, you have to remember to set all the required values, which are:

  • FD_CLI_BC_DB_PATH – path to blockchain database
  • FD_CLI_WT_DB_PATH – path to wallet DB for which you want to perform recovery (please remember to put proper fingerprint, this can be easiy taken from the wallet .sqlite filename.
  • LAUNCHER_HASH – Launcher ID of the NFT Contract from Chia. Can be extracted by running “chia plotnft show” on Chia
  • POOL_CONTRACT_ADDRESS – Pool contract address of NFT Contract from Chia. Can be extracted by running “chia plotnft show” on Chia.
  • set the Full node port in -np parameter. Port list can be found on the Chia Forks Google Sheet, created thanks to excellent work of community members.
  • set proper path for fork SSL keys in -ct and -ck parameters.