Advanced Installation
This page will go into the details of the various different ways to install Chia. If you already installed Chia as part of the Farming Guide, then feel free to skip ahead to the Plotting Basics page.
There are various ways to install Chia, with the best method depending on what you intend to do:
-
If you simply wish to use the Chia wallet, or to run a farm on a single personal computer, then we recommend installing the GUI from our official downloads page for Windows and MacOS, and for Linux users to install the package as described below. The GUI is the simplest way to interact with the Chia client and ideal for most non-developer use cases.
-
If you intend to run a dedicated Chia full node on a server and connect to it programmatically using the RPC interface, the best method would be to install and run Chia via the command line on a proper server environment.
-
If you intend to do Chialisp development or build projects that leverage Chia, you have the options of either using an installer (the recommended pattern), or installing from source.
-
Lastly, if you plan on making contributions to the source code, then installing Chia from source would be your path.
In summary, unless you already knew before reading this page that you should be installing from source, chances are your best path will be to install from our official downloads page or a Linux package, depending on your OS.
System Requirements
The minimum supported specs are that of the Raspberry Pi 4, 4GB model:
- Quad core 1.5Ghz CPU (must be 64 bit)
- 4 GB RAM
- As of Chia version 2.5, Python versions 3.9 and later are supported
Drive Format
Chia plot files are at least 108GB in size (for K32). To plot successfully requires drives formatted to support large files. Formats that will work include NTFS, APFS, exFAT, and ext4. Do not use drives with FAT formatting (for example FAT12, FAT16, and FAT32), or else plotting will fail. Future versions of Chia will check for unsupported drives, but for now it's up to each user to check their drive format.
Sleep kills plots
If the computer or hard drives go to sleep during the plotting process, it will fail, and you will need to start over. Please ensure all sleep, hibernate and power saving modes for your computer and hard drives are disabled before starting the Chia plotting process. In the future, Chia will have a resume plot feature. In the meantime, if you do get a failed plot, delete all *.tmp
files before starting a new plot.
Install
Using the CLI
This method is intended for linux environments
- APT
- YUM
- DNF
- PIP
# Install packages
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# Add GPG key
curl -sL https://repo.chia.net/FD39E6D3.pubkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/chia.gpg
# Set up repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/chia.gpg] https://repo.chia.net/debian/ stable main" | sudo tee /etc/apt/sources.list.d/chia.list > /dev/null
sudo apt-get update
# Install chia-blockchain
sudo apt-get install chia-blockchain
# Use chia-blockchain-cli instead for CLI only
# Install packages
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://repo.chia.net/rhel/chia-blockchain.repo
# Install chia-blockchain
sudo yum install chia-blockchain
# Use chia-blockchain-cli for CLI only
# Install packages
sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --add-repo https://repo.chia.net/rhel/chia-blockchain.repo
# Install chia-blockchain
sudo dnf install chia-blockchain
# Use chia-blockchain-cli for CLI only
# Create virtual environment
python -m venv venv
# Activate virtual environment
. ./venv/bin/activate # MacOS / Linux
./venv/Scripts/Activate.ps1 # Windows
# Update pip
pip install --upgrade pip
# Install chia-blockchain
pip install --extra-index-url https://pypi.chia.net/simple chia-blockchain miniupnpc
Chia strives to provide binary wheels for modern systems. If your system does not have binary wheels, you may need to install development tools to build some Python extensions from source. If you're attempting to install from source, setting the environment variable BUILD_VDF_CLIENT
to N
will skip trying to build Timelord components that aren't very cross platform, e.g. export BUILD_VDF_CLIENT=N
.
From Source
This method is primarily intended for contributing to the Chia codebase
- Linux/MacOS
- Windows
# Download chia-blockchain
git clone https://github.com/Chia-Network/chia-blockchain -b latest --recurse-submodules
# Change directory
cd chia-blockchain
# Install dependencies
sh install.sh
# Activate virtual environment
. ./activate
# Initialize
chia init
The following is how you update to the latest version:
# Change directory
cd chia-blockchain
# Activate the virtual environment
. ./activate
# Stop running services
chia stop -d all
# Deactivate the virtual environment
deactivate
# Remove the current virtual environment
rm -r venv
# Pull the latest version
git fetch
git checkout latest
git reset --hard FETCH_HEAD --recurse-submodules
# If you get RELEASE.dev0 then delete the package-lock.json in chia-blockchain-gui and install.sh again
# This should say "nothing to commit, working tree clean"
# if you have uncommitted changes, RELEASE.dev0 will be reported
git status
# Install the new version
sh install.sh
# Activate the virtual environment
. ./activate
# Initialize the new version
chia init
# Download chia-blockchain
git clone https://github.com/Chia-Network/chia-blockchain -b latest --recurse-submodules
# Change directory
cd chia-blockchain
# Install dependencies
./Install.ps1
# Activate virtual environment
. ./venv/Scripts/Activate.ps1
# Initialize
chia init
The following is how you update to the latest version:
# Change directory
cd chia-blockchain
# Activate the virtual environment
. ./venv/Scripts/Activate.ps1
# Stop running services
chia stop -d all
# Deactivate the virtual environment
deactivate
# Remove the current virtual environment
rm -r venv
# Pull the latest version
git fetch
git checkout latest
git reset --hard FETCH_HEAD --recurse-submodules
# If you get RELEASE.dev0 then delete the package-lock.json in chia-blockchain-gui and install.sh again
# This should say "nothing to commit, working tree clean"
# if you have uncommitted changes, RELEASE.dev0 will be reported
git status
# Install the new version
./Install.ps1
# Activate the virtual environment
. ./venv/Scripts/Activate.ps1
# Initialize the new version
chia init
Raspberry Pi 4
Chia does not support the Raspberry Pi 3, and we do not recommend running the GUI on the 4GB Raspberry Pi 4 model.
It is highly recommended you put the Chia blockchain and wallet database on an SSD or NVMe drive, rather than the SD card.
Swap
It is suggested that you set up 1024 MiB of swap:
- Ubuntu 20.04 LTS
- Raspbian 64
Run the following commands to set up the swap:
sudo dd if=/dev/zero of=/swap bs=1M count=1024
sudo chmod 600 /swap
sudo mkswap /swap
sudo swapon /swap
Add this line to /etc/fstab
so that swap available on reboot:
/swap swap swap defaults 0 0
Here is an excellent walk-through of increasing swap space on Raspbian 64.
Setup
Run the following commands to prepare for installation:
# Requirements to compile the blockchain
sudo apt-get install -y build-essential python3-dev
# If you are not using Raspbian 64, add this
export PIP_EXTRA_INDEX_URL=https://www.piwheels.org/simple/
# Make sure you have 64-bit Python 3.9 or later
python3 -c 'import platform; print(platform.architecture())'
Proceed
If you run into an error during the build process, make sure you are running a 64-bit version of the OS.
You can check by running uname -a
. If it says arm7l
, you need a 64-bit version of the OS. The uname -a
output should end with aarch64 GNU/Linux
.
Finally, follow the typical from source installation for Linux to continue.
Disable Timelord
This is not necessary when installing from source.
However, if you install Chia in some other way, disable the timelord build process:
export BUILD_VDF_CLIENT=N
Other environments
- Docker
- WSL2
- Amazon Linux 2
- FreeBSD
- OpenBSD
Installation instructions for docker are found on the container repo: Docker
You can run chia-blockchain in Ubuntu 20.04 LTS via WSL2 on Windows.
NOTE: WSL2 plotting is currently only slightly faster than plotting on the native windows client. WSL2 requires significant tweaking to set up correctly. If you find that daunting, it's probably easier to just use the native windows client.
You can not run the GUI as WSL2 doesn't yet support graphical interfaces from WSL2.
Check if you already have WSL2 or WSL1 installed:
From PowerShell, type:
wsl -l -v
If you get a listing of help topics for wsl commands, you have WSL1, and need to upgrade. To upgrade, follow the instructions here. If you get a blank result or a listing of installed Linux versions, you have WSL2 and are OK to proceed.
If WSL is not installed:
From an Administrator PowerShell:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
You will be prompted to reboot.
Installing a new WSL2 instance:
Install Ubuntu 20.04 LTS from the Microsoft Store and run it and complete its initial install steps. You now have a linux bash shell environment that can run linux native software on Windows.