COMET Autonomys Guide - hakehardware/comet GitHub Wiki
This WIKI is a WORK IN PROGRESS
Introduction
Whether you have bought a COMET from me or built your own, this guide will get you started farming on the Autonomys network. Before we begin though let's cover some components, recommendations and requirements.
Components
In order to get understand a lot of the guide you will need to understand a few components:
- COMET - This is the CM3588 NAS Kit
- SERVER - Interchangeable with the term PC in these guides.
- NATs - This is service that allows cluster components to talk to each other
- Cluster - This is an Autonomys specific term and includes a Controller, Cache, Plotter, Farmer all connected via NATs
- Controller - Cluster component which acts as the brains of the cluster
- Cache - Cluster component which stores the Piece Cache and helps with plotting by storing the pieces which will be used to plot
- Plotter - Cluster component which plots sectors to a farmer
- Farmer - Cluster component which is connected to SSDs for farming
- Piece Cache - The piece cache is essential to plotting and provides the plotter quick access to data it needs to plot
- Node - Autonomys specific component that syncs with the blockchain and connects to the Controller
Node + Cluster Architecture
As can be seen in the architecture diagram, the Controller connects to the Node, and NATs. Then all the other cluster components simply connect to NATs to communicate. The Node must have a quality SSD hooked up to it to store the blockchain data. The Cache must also have an SSD hooked up to it to store the Piece Cache for plotting. The Plotter should have at least 1 GPU (multiple can be used) to plot and replot the SSDs hooked up to the Farmer. And of course the Farmer has SSDs connected to it which will be farmed.
The benefits of the cluster really start to show when you realize you can duplicate many of the components. For instance you can add a second plotter to increase your plotting speed. Or add more farmers to increase your total farm size.
We will cover this more in-depth in the Advanced Clusters section as there are a lot of ways to configure your cluster for best performance.
NOTE: It is possible to not use a Cluster and simply run a standalone "Farmer" that does everything a Cluster does in a single executable. However, this is extremely inefficient if you do not plan to run everything on a single Server (along with several other drawbacks). I highly recommend using a Cluster regardless of your setup.
Recommendations
Node
The COMET is not ideal for running a Node. If you plan to run a Node on a COMET it should really be dedicated to just running a Node. You may run into sync issues and have issues farming if you try to run both. Running a Node is a fairly resource intensive process. Make sure that you are not storing the Node data on the eMMC or SD Card. I have not tested it, but possibly a USB -> SATA cable connected to a 2.5" SATA SSD could work. You can of course also use an NVME drive.
Cluster
The ideal setup for a COMET is filling the "Farmer" role in a cluster. This means you have a separate Plotter & Node. This will give you the best results. I have had good results running a full cluster (Controller, Cache, Plotter, Farmer) but you will need an SD card to store the Piece Cache.
Requirements
Software
The COMET comes with Armbian installed, and we will be using Docker and Portainer for these guides. You should not really need to run any other software. I use a Windows PC with Termius (terminal manager) so that I can quickly SSH into my COMETs. I believe there is a free version of Termius, and I highly recommend using something like that. I even pay the $10 a month for the premium version because I love it so much (not sponsored).
Armbian
Please note that the COMET is technically not fully supported by Armbian (operating system). They have different tiers and the COMET (CM3588) is basically "unsupported". However, there is a build for it, and it does work well (so far). There may be a time in the future where it does not work, and in that case a move to Debian will likely be required and I will have a guide on how to install it. Hopefully that does not happen because I really like Armbian.
Network
Ideally you will have a 2.5G switch to connect the COMETs to as they have 2.5G Ethernet ports. This is especially important if you plan to plot over the network. The COMET does not have WiFi so you will need a wired connection, which honestly is best.
Storage
You will need to source and install your own NVME drives. We will cover how to get them set up for Autonomys though. The COMETs only come with 64G of eMMC storage (CM3588 is configurable up to 256GB). This is all that is needed for Armbian and Docker/Portainer. If you run a Cluster Cache, you can add an 128GB+ SD card or partition off a piece of your NVME drive.
Component Architecture
The COMET works best as a dedicated Farmer, and it scales fairly well whether you run 1 or 100 (as far as software goes). The idea is that you have a PC which has a GPU that is compatible with Autonomys which does Plotting. That PC will be used for performing the initial plot of your SSDs, and if possible, the replots as well. You will also need a PC to run your Node, which must be on 24/7. The Plotter and Node could be on the same computer if it will remain on 24/7 and has sufficient hardware. This is what I typically do as I have an always on Server which a decent GPU.
Once you have the Node & Plotter sorted out, you can simply connect as many COMETs as you want to the network and add them to the cluster.
Single Node/Plotter & Single COMET
This is the most basic setup, and a great way to get started. It looks something like:
Here you can see Server 1 has an RTX 3090, two SSDs and will run a Node + a full cluster minus the Farmer. Then the COMET has just a Farmer with 4x NVME installed. SERVER 1 will plot and replot to COMET 1 over the network. We put the Cluster Cache and Cluster Controller on SERVER 1 as it is most efficient to keep these on the same machine that is plotting since the plotter uses the Cache.
Single Node/Plotter & Multiple COMET
Expanding COMETs (and thus disk space) is simple. At the very basic level you can simply add more and more cluster Farmers. You could have quite an army and have very little issues as long as your plotter can keep up. I am still testing the possibility of using the COMETs as self-plotters after the initial plotting, but this has not been tested yet.
As can be seen here, Server 1 has a Node and still does the Plotting, but now we have two COMETs farming.
Multiple Cluster Components
You can expand almost all cluster components to create more large but not necessarily more complex setups. Let's say you have two PCs that you want to use as plotters, this can be done by simply running two cluster Plotters. To make it more efficient you can then run a Cache and Controller on each plotter. To add redundancy you can then run NATs on each Plotter as well. Now if a Plotter goes down the other Plotter can keep plotting.
Note that you should only ever run a single Node, there is no redundancy here unfortunately.
So here only SERVER 1 is running a Node, and both servers are running controller, cache, plotter, and NATs. We will cover these complex setups in our Advanced Clusters section
Hake Hardware's COMET Setup
Just for fun let's build my setup. The picture is a bit hard to read as I had to fit a lot in. But the explanation below should help.
SERVER 1 is a dedicated plotter and will only be used during initial plotting. To assist with plotting I have a Controller and Cache hooked up to it. I have it connected to a 10G switch to ensure maximum bandwidth for over the network plotting. After initial plotting SERVER 1 will be turned off.
SERVER 2 is my Node and dedicated plotter. Like SERVER 1 it will have a Controller and Cache to assist in Plotting and is connected to a 10G switch. It has an RTX 3070 hooked up, and I believe it should be sufficient to handle replotting as needed. I will also have it assist in the initial plotting. This server hosts a bunch of other things and is left on 24/7 so it made sense to make it a Node and Plotter.
COMET A-E are all dedicated Farmers. They are connected to an 8x2.5G switch which works great as they each have a 2.5G Ethernet port. I have space to expand to up to 8 COMETs on the switch, and I can add another switch to the 10G switch if needed. That would leave me with 16 COMETs and 256TB if I want to scale that much. It may seem like a lot running 16 COMETs, but these are small, and I am hoping to have a 9" rack case for them soon (will also be selling them) which means I can fit 8 of them + the switch in a 9U NavePoint 9" rack. It's a tight package for 128TB each.