Earn Chia Cryptocurrency with your Synology NAS: A Step-by-step Guide
Chia is an innovative new cryptocurrency that leverages proofs of space and time to validate transactions and keep the blockchain secure. Chia farming requires relatively little computational power, mitigating one of the biggest criticisms of major cryptocurrencies like Bitcoin: that mining is hugely wasteful of electricity.
Chia does however require large amounts of disk storage space. Professional Chia farmers need to invest in a full-blown Chia farming rigs made up of several hundred large capacity disks. The Chia network is already very large and any investments in hardware are unlikely to result in profits for the novice farmer. But if you’re like me: interested in playing with this technology and with a few spare TBs lying around in your basement NAS, there’s no harm in trying your luck.
There are two main components to earning Chia: plotting and farming.
Plotting refers to creating the large 109 GB files that are then farmed to earn rewards. Plotting requires a fair amount of computational power and memory, which means plotting on a NAS is not ideal. However, it is possible, as I’ll demonstrate in this article. Plotting also involves a significant amount of disk IO. It’s a lot faster to plot on an SSD but SSDs have a limited lifespan and will wear out over time. If speed is not a factor, plot with an HDD. Some experts recommend creating multiple plots in parallel rather than trying to optimize the speed of a single plot.
Farming requires relatively little disk IO and computation, which means your Synology NAS is far better suited for farming than it is for plotting. If you have both SSDs and HDDs in your NAS, it makes sense to move completed plots to large, cheap, and slow HDDs for farming. However, my advice is to use whatever you have right now. Do not to purchase anything new until you have some experience.
I have a Synology DiskStation 920+. It’s a 4-drive enclosure with a 4-core 2.0 GHz CPU and 4 GB RAM. Your mileage may vary with other models. Synology is known for their excellent DiskStation Manager (DSM) software that supports a large array of useful software, such as media servers, web servers, databases, and more. There will almost certainly be native Chia packages available for DSM soon and you could run the Chia software in a Docker container. However, in this guide we’ll be using DSM’s Virtual Machine Manager to create an Ubuntu server for plotting and farming.
I highly recommend increasing the NAS’s RAM to 8 GB. It’s not mandatory, but the upgrade is cheap and fast, and will make your life so much easier.
To start, download the Ubuntu Live Server ISO image. Ubuntu Desktop will use too much of our precious RAM — there will be no fancy graphical user interface I’m afraid. Save the ISO to any shared folder in your NAS.
Install the Virtual Machine Manager: login to DSM, open the Main Menu (icon in the top left corner), open the Package Center, find the Virtual Machine Manager package, and hit Install.
Open the Virtual Machine Manager from the Main Menu. Go to the Virtual Machine tab and hit Create. Select the Linux radio button and hit Next. Choose a suitable volume on your NAS to host the VM — the volume must have enough free space to host the Ubuntu operating system and create at least one plot. Plots require 365 GB of temporary space during creation but will occupy only 108.8 GB once the temporary files are deleted.
Give the VM a suitable name, select at least 2 CPUs, and as much memory as it will allow. The Virtual Machine Manager reserves 2 GB for DSM. As a result, if you have 4 GB RAM, the most you can assign to the VM is 2 GB. Leave the Video Card as vmvga and hit Next.

On the Storage screen, assign at least 400 GB to the virtual disk. However, more is better especially if you want to create multiple plots. The idea is to use up any space you don’t need for other purposes. Note that you can increase this value later but never decrease it — be sure to use only what you can spare. Hit Next.

On the Configure Network screen, keep “Default VM Network” and hit Next.

On the Other Settings screen, hit the “ISO file for bootup” Browse button and find the Ubuntu Server ISO that you uploaded earlier. Keep the rest of the settings at the default values.

On the Assign Permissions screen, select which users should be able to control the virtual machine then hit Next.
On the Summary screen, select “Power on the virtual machine after creation” then hit Apply.

Your virtual machine is now created and will already be booting. In the Virtual Machine Manager’s Virtual Machine tab, select the machine you just created and hit the Connect button. This will open the server console in a new browser tab. After some initial integrity checks, the installation of the server will begin.
Select the language of your choice and hit Enter.

Select your keyboard layout and select Done.

On the following screens, keep the Network connections, Proxy address, and Mirror address at their default values and hit Done each time.
Under the Guided storage configuration, leave the default value “Use an entire disk”.

Ubuntu assigns only 200 GB to the main logical volume by default. Recall that Chia plots require at least 356.5 GB of temporary space so let’s increase this value.
Select the ubtunu-lg
device and hit Edit.

Increase the logical volume size so that it uses the whole partition. Hit Save, then hit Done.

Accept the Storage Configuration by hitting Continue.

On the profile setup screen, give the server an appropriate name, enter a suitable username and password, then hit Done.

On the following screen, select Install OpenSSH server, then hit Done. This is useful if you want to SSH into your sever rather than use the web-based console.

After a few seconds the orange status bar will indicate that installation is complete.
Before rebooting, go back to the DSM Virtual Machine Manager, select the virtual machine, hit Action, then Edit, then in the Others tab, change “ISO file for bootup” to Unmounted.

Go back to the virtual machine console and select Reboot Now.

The server will boot from the virtual disk and then display login prompt. If the server does not boot properly, forcefully shut it down and power it back up again from the Virtual Machine Manager.
Login using the username and password that was set during installation.

Ensure that the ubuntu--vg-ubuntu--lv
filesystem has enough space to plot by typing df -h
at the command prompt.

Plotting will be very slow if the server uses swap memory. Type sudo swapoff -a
to disable swap (enter your password if prompted), then type sudo nano /etc/fstab
and comment out the swap line to make the change survive reboots.

Hit CTRL-X to exit and save the changes.
Download the chia network software as per the Chia install guide.
sudo apt-get updatesudo apt-get upgrade -y# Checkout the source and install - this is all one line
git clone https://github.com/Chia-Network/chia-blockchain.git -b latest --recurse-submodulescd chia-blockchain
sh install.sh# Note the leading period below
. ./activate
Running the activate script places you into a Python virtual environment and adds the chia executable to your path. You will see (venv)
prepended to the command prompt. Remember to re-enter the chia-blockchain directory and run . ./activate
if you start a new shell or reboot your server.
Initialize chia and create your first keys.
chia initchia keys generate
Save the generated 24-word mnemonic in a safe place. The mnemonic will regenerate your private keys if you lose them or need to create the keys on a different machine. It must be kept secret.
You are now ready to start your first plot. Create two folders: one to hold the temporary files and one to hold the final plots.
mkdir plots-tempmkdir plots-final
Choosing suitable plotting settings is very important when RAM is at a premium. If your virtual machine has only 2 GB of total memory, you have very little wiggle room before the the out-of-memory killer zaps the Chia plotter. According to the docs, 1400 MB is the bare minimum for the plot to succeed with bitfield disabled, so that’s what we’ll use.
chia plots create --nobitfield --buffer 1400 --tmp_dir plots-temp --final_dir plots-final --num 1 >> plot.log 2>&1 &
In the above command, we are asking the plotter to
- Disable bitfield because it uses more RAM (
--nobitfield
or-e
); - Use the minimum buffer size of 1400 MB (
--buffer
or-b
); - Save the temporary files to plots-temp (
--tmp_dir
or-t
); - Save the final plots to plots-final (
--final_dir
or-d
); - Create a single plot (
--num
or-n
); - Pipe all log messages to a file call
plot.log
; and - Run in the background
We can track the progress of our plot by tailing the log file. There are four phases of the plotting process in total.
tail -f plot.log
Expect the plot creation to take over 24 hours even if you are using an SSD. If your server has more than 2 GB RAM, increasing the buffer size (-b
) will improve the plotting speed, or you can consider creating multiple plots simultaneously. Increase the --num
value to create multiple plots sequentially. The more plots you have, the more likely you are to earn Chia.
Once your first plot completes, you will find a 109 GB (102 GiB) file in your plots-final
directory. You can now start farming your plot.
Start the farmer, harvester, a full node, and the wallet.
chia start farmer
You should see terminal output indicating the services have started.
Confirm the farmer has located your plot.
chia farm summary
The Plot count should be non-zero.
Now check the status of your connections and node.
chia show -cs
Farming will commence only once your Current Blockchain Status reaches the Full Node Synced state. Syncing will take several hours the first time you run the full node.

Be sure to leave the virtual machine and the farmer process running in the background and, who knows, maybe one day you’ll get lucky and earn some rewards for farming Chia.
If you have any additional tips and tricks for farming Chia on a NAS, be sure to leave them in the comments.