Install
Releases section on our GitHub is the best place to get fresh releases of binaries and check out the source code.
There are multiple versions of our releases available below. Skylake: For Intel Skylake onwards and AMD Ryzen CPUs. Typically those PCs manufactured after 2015. Legacy (x86-64-v2): For Intel Broadwell, Haswell and older CPUs, as well as AMD's equivalents. Designed for the CPU architecture generally found in systems produced between 2009 and 2015. Also supports VM environments that do not expose the Skylake onwards instructions.
Get Started with Advanced CLI Installation
Please note that a wallet with a Substrate address is required to run the software.
To learn how to create a Substrate wallet, please visit our pages on SubWallet (recommended) or Polkadot.js.
We will download two files for your respective operating system.
Subspace-Node
- This is the executable that actually makes the connection with the Autonomys NetworkSubspace-Farmer
- This is the executable that will actually farm for rewards on your allocated storage plots.
Starting with the February 19th release, we've enhanced plotting performance by increasing internal concurrency. This enhancement leads to improved CPU utilization and increased RAM usage. If you prefer to revert your farmer to its previous behavior, you can use the flag --record-encoding-concurrency 1
.
- 🖼️ Windows
- 🍎macOS
- 🐧Ubuntu
- 🐋 Docker
- 🤖 Service (Linux)
- ⚙️ Build from Source
Windows Specific Warnings:
If you face an error where the node outputs nothing and no error code is given it is likely you just need to install the latest Visual C++ Redistributable package here
Step 1: Download the Advanced CLI Executables
Step 2: Start Advanced CLI Node
A Windows Defender Firewall has blocked some features of this app
warning may appear.
This is because the application is trying to access the internet. This is expected as it is how the farmer talks to other farmers on the network, select Allow access
to continue setup.
- Open
Powershell
(we do not recommend using Command Prompt as its syntax is slightly different) - In the terminal we will change to the Downloads directory using this command
cd Downloads
- We will then start the node using the following command:
# Replace `INSERT_YOUR_ID` with a nickname you choose
# Copy all of the lines below, they are all part of the same command
.\subspace-node-windows-x86_64-skylake-gemini-3h-2024-sep-03.exe `
run `
--chain gemini-3h `
--base-path NODE_DATA_PATH `
--farmer `
--name "INSERT_YOUR_ID"
Using run, setting --base-path and specifying --chain became mandatory starting with Gemini 3h. The parameter --validator
was switched to --farmer
at the same time.
As of the Jun 11, 2024 version a new option is available for fast syncing called Snap Sync. It will only work for the initial sync, but many people report that they are fully synced within hours, not days. The parameter is --sync snap.
- You should see something similar in the terminal:
2022-02-03 10:52:23 Subspace
2022-02-03 10:52:23 ✌️ version 0.1.0-35cf6f5-x86_64-windows
2022-02-03 10:52:23 ❤️ by Subspace Labs <https://subspace.network>, 2021-2022
2022-02-03 10:52:23 📋 Chain specification: Subspace Gemini 1
2022-02-03 10:52:23 🏷 Node name: YOUR_FANCY_NAME
2022-02-03 10:52:23 👤 Role: AUTHORITY
2022-02-03 10:52:23 💾 Database: RocksDb at C:\Users\X\AppData\Local\subspace-node-windows-x86_64-snapshot-2022-jan-05.exe\data\chains\subspace_test\db\full
2022-02-03 10:52:23 ⛓ Native runtime: subspace-100 (subspace-1.tx1.au1)
2022-02-03 10:52:23 🔨 Initializing Genesis block/state (state: 0x22a5…17ea, header-hash: 0x6ada…0d38)
2022-02-03 10:52:24 ⏱ Loaded block-time = 1s from block 0x6ada0792ea62bf3501abc87d92e1ce0e78ddefba66f02973de54144d12ed0d38
2022-02-03 10:52:24 Starting archiving from genesis
2022-02-03 10:52:24 Archiving already produced blocks 0..=0
2022-02-03 10:52:24 🏷 Local node identity is: 12D3KooWBgKtea7MVvraeNyxdPF935pToq1x9VjR1rDeNH1qecXu
2022-02-03 10:52:24 🧑🌾 Starting Subspace Authorship worker
2022-02-03 10:52:24 📦 Highest known block at #0
2022-02-03 10:52:24 〽️ Prometheus exporter started at 127.0.0.1:9615
2022-02-03 10:52:24 Listening for new connections on 0.0.0.0:9944.
2022-02-03 10:52:26 🔍 Discovered new external address for our node: /ip4/176.233.17.199/tcp/30333/p2p/12D3KooWBgKtea7MVvraeNyxdPF935pToq1x9VjR1rDeNH1qecXu
2022-02-03 10:52:29 ⚙️ Syncing, target=#215883 (2 peers), best: #55 (0xafc7…bccf), finalized #0 (0x6ada…0d38), ⬇ 850.1kiB/s ⬆ 1.5kiB/s
Step 3: Start Advanced CLI Farmer
- We will then open another terminal, change to the downloads directory as we did before, then start the farmer node with the following command:
# Replace `PATH_TO_FARM` with location where you want you store plot files
# Replace `WALLET_ADDRESS` below with your account address from Polkadot.js wallet
# Replace `PLOT_SIZE` with plot size in gigabytes or terabytes, for example 100G or 2T (but leave at least 60G of disk space for node and some for OS)
.\subspace-farmer-windows-x86_64-skylake-gemini-3h-2024-sep-03.exe farm --reward-address WALLET_ADDRESS path=PATH_TO_FARM,size=PLOT_SIZE
- You should see something similar in the terminal:
2022-06-02T00:02:04.552120Z INFO subspace_farmer::commands::farm: Connecting to node at ws://127.0.0.1:9944
2022-06-02T00:02:04.557220Z INFO jsonrpsee_client_transport::ws: Connection established to target: Target { sockaddrs: [], host: "127.0.0.1", host_header: "127.0.0.1:9944", _mode: Plain, path_and_query: "/" }
2022-06-02T00:02:04.575669Z INFO subspace_farmer::commands::farm: Opening object mapping
2022-06-02T00:02:04.617553Z INFO subspace_farmer::multi_farming: Opening plot
2022-06-02T00:02:04.645422Z INFO subspace_farmer::multi_farming: Opening commitments
2022-06-02T00:02:04.666925Z INFO subspace_farmer::farming: Subscribing to slot info notifications
2022-06-02T00:02:04.688218Z INFO subspace_farmer::archiving: Subscribing to archived segments
2022-06-02T00:02:04.689129Z INFO subspace_farmer::commands::farm: WS RPC server listening on 127.0.0.1:9955
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=0
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=1
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=2
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=3
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=4
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=5
- You are now farming! Just wait for your node to fully sync, and for your farmer to fully plot.
macOS Specific Warnings:
The minimum support macOS version is version 12+
Step 1: Download Advanced CLI Executables
Step 2: Start Advanced CLI Node
When attempting to start the node, you may be prompted: Click on cancel
instead of moving it to trash.
To allow execution, go to System Preferences -> Security & Privacy -> General
, and click on allow
.
After this, simply repeat the step you prompted for (step 4 or 6). This time, click the Open
button when prompted.
- Open your favorite terminal, and change to the Downloads directory using
cd Downloads
- Make the farmer & node executable:
chmod +x subspace-farmer-macos-aarch64-gemini-3h-2024-sep-03
chmod +x subspace-node-macos-aarch64-gemini-3h-2024-sep-03
- We will then start the node using the following command
# Replace `INSERT_YOUR_ID` with a nickname you choose
# Copy all of the lines below, they are all part of the same command
./subspace-node-macos-aarch64-gemini-3h-2024-sep-03 \
run \
--chain gemini-3h \
--base-path NODE_DATA_PATH \
--farmer \
--name "INSERT_YOUR_ID"
Using run, setting --base-path and specifying --chain became mandatory starting with Gemini 3h. The parameter --validator
was switched to --farmer
at the same time.
As of the Jun 11, 2024 version a new option is available for fast syncing called Snap Sync. It will only work for the initial sync, but many people report that they are fully synced within hours, not days. The parameter is --sync snap.
- You should see something similar in the terminal:
2022-02-03 10:52:23 Subspace
2022-02-03 10:52:23 ✌️ version 0.1.0-35cf6f5-x86_64-macos
2022-02-03 10:52:23 ❤️ by Subspace Labs <https://subspace.network>, 2021-2022
2022-02-03 10:52:23 📋 Chain specification: Subspace Gemini 1
2022-02-03 10:52:23 🏷 Node name: YOUR_FANCY_NAME
2022-02-03 10:52:23 👤 Role: AUTHORITY
2022-02-03 10:52:23 💾 Database: RocksDb at /Users/X/Library/Application Support/subspace-node-x86_64-macos-11-snapshot-2022-jan-05/chains/subspace_test/db/full
2022-02-03 10:52:23 ⛓ Native runtime: subspace-100 (subspace-1.tx1.au1)
2022-02-03 10:52:23 🔨 Initializing Genesis block/state (state: 0x22a5…17ea, header-hash: 0x6ada…0d38)
2022-02-03 10:52:24 ⏱ Loaded block-time = 1s from block 0x6ada0792ea62bf3501abc87d92e1ce0e78ddefba66f02973de54144d12ed0d38
2022-02-03 10:52:24 Starting archiving from genesis
2022-02-03 10:52:24 Archiving already produced blocks 0..=0
2022-02-03 10:52:24 🏷 Local node identity is: 12D3KooWBgKtea7MVvraeNyxdPF935pToq1x9VjR1rDeNH1qecXu
2022-02-03 10:52:24 🧑🌾 Starting Subspace Authorship worker
2022-02-03 10:52:24 📦 Highest known block at #0
2022-02-03 10:52:24 〽️ Prometheus exporter started at 127.0.0.1:9615
2022-02-03 10:52:24 Listening for new connections on 0.0.0.0:9944.
2022-02-03 10:52:26 🔍 Discovered new external address for our node: /ip4/176.233.17.199/tcp/30333/p2p/12D3KooWBgKtea7MVvraeNyxdPF935pToq1x9VjR1rDeNH1qecXu
2022-02-03 10:52:29 ⚙️ Syncing, target=#215883 (2 peers), best: #55 (0xafc7…bccf), finalized #0 (0x6ada…0d38), ⬇ 850.1kiB/s ⬆ 1.5kiB/s
Step 3: Start Advanced CLI Farmer
- We will then open another terminal, change to the downloads directory, then start the farmer node with the following command:
# Replace `PATH_TO_FARM` with location where you want you store plot files
# Replace `WALLET_ADDRESS` below with your account address from Polkadot.js wallet
# Replace `PLOT_SIZE` with plot size in gigabytes or terabytes, for example 100G or 2T (but leave at least 60G of disk space for node and some for OS)
./subspace-farmer-macos-aarch64-gemini-3h-2024-sep-03 farm --reward-address WALLET_ADDRESS path=PATH_TO_FARM,size=PLOT_SIZE
- You should see something similar in the terminal:
2022-06-02T00:02:04.552120Z INFO subspace_farmer::commands::farm: Connecting to node at ws://127.0.0.1:9944
2022-06-02T00:02:04.557220Z INFO jsonrpsee_client_transport::ws: Connection established to target: Target { sockaddrs: [], host: "127.0.0.1", host_header: "127.0.0.1:9944", _mode: Plain, path_and_query: "/" }
2022-06-02T00:02:04.575669Z INFO subspace_farmer::commands::farm: Opening object mapping
2022-06-02T00:02:04.617553Z INFO subspace_farmer::multi_farming: Opening plot
2022-06-02T00:02:04.645422Z INFO subspace_farmer::multi_farming: Opening commitments
2022-06-02T00:02:04.666925Z INFO subspace_farmer::farming: Subscribing to slot info notifications
2022-06-02T00:02:04.688218Z INFO subspace_farmer::archiving: Subscribing to archived segments
2022-06-02T00:02:04.689129Z INFO subspace_farmer::commands::farm: WS RPC server listening on 127.0.0.1:9955
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=0
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=1
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=2
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=3
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=4
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=5
- You are now farming! Just wait for your node to fully sync, and for your farmer to fully plot.
Step 1: Download the Advanced CLI Executables
Step 2: Start Advanced CLI Node
- Open your favorite terminal, and change to the Downloads directory using
cd Downloads
- Make the farmer & node executable
chmod +x subspace-farmer-ubuntu-x86_64-skylake-gemini-3h-2024-sep-03
chmod +x subspace-node-ubuntu-x86_64-skylake-gemini-3h-2024-sep-03
- We will then start the node using the following command
# Replace `INSERT_YOUR_ID` with a nickname you choose
# Copy all of the lines below, they are all part of the same command
./subspace-node-ubuntu-x86_64-skylake-gemini-3h-2024-sep-03 \
run \
--chain gemini-3h \
--base-path NODE_DATA_PATH \
--farmer \
--name "INSERT_YOUR_ID"
Using run, setting --base-path and specifying --chain became mandatory starting with Gemini 3h.
As of the Jun 11, 2024 version a new option is available for fast syncing called Snap Sync. It will only work for the initial sync, but many people report that they are fully synced within hours, not days. The parameter is --sync snap.
- You should see something similar in the terminal:
2022-02-03 10:52:23 Subspace
2022-02-03 10:52:23 ✌️ version 0.1.0-35cf6f5-x86_64-ubuntu
2022-02-03 10:52:23 ❤️ by Subspace Labs <https://subspace.network>, 2021-2022
2022-02-03 10:52:23 📋 Chain specification: Subspace Gemini 1
2022-02-03 10:52:23 🏷 Node name: YOUR_FANCY_NAME
2022-02-03 10:52:23 👤 Role: AUTHORITY
2022-02-03 10:52:23 💾 Database: RocksDb at /home/X/.local/share/subspace-node-x86_64-ubuntu-20.04-snapshot-2022-jan-05/chains/subspace_test/db/full
2022-02-03 10:52:23 ⛓ Native runtime: subspace-100 (subspace-1.tx1.au1)
2022-02-03 10:52:23 🔨 Initializing Genesis block/state (state: 0x22a5…17ea, header-hash: 0x6ada…0d38)
2022-02-03 10:52:24 ⏱ Loaded block-time = 1s from block 0x6ada0792ea62bf3501abc87d92e1ce0e78ddefba66f02973de54144d12ed0d38
2022-02-03 10:52:24 Starting archiving from genesis
2022-02-03 10:52:24 Archiving already produced blocks 0..=0
2022-02-03 10:52:24 🏷 Local node identity is: 12D3KooWBgKtea7MVvraeNyxdPF935pToq1x9VjR1rDeNH1qecXu
2022-02-03 10:52:24 🧑🌾 Starting Subspace Authorship worker
2022-02-03 10:52:24 📦 Highest known block at #0
2022-02-03 10:52:24 〽️ Prometheus exporter started at 127.0.0.1:9615
2022-02-03 10:52:24 Listening for new connections on 0.0.0.0:9944.
2022-02-03 10:52:26 🔍 Discovered new external address for our node: /ip4/176.233.17.199/tcp/30333/p2p/12D3KooWBgKtea7MVvraeNyxdPF935pToq1x9VjR1rDeNH1qecXu
2022-02-03 10:52:29 ⚙️ Syncing, target=#215883 (2 peers), best: #55 (0xafc7…bccf), finalized #0 (0x6ada…0d38), ⬇ 850.1kiB/s ⬆ 1.5kiB/s
Step 3: Start Advanced CLI Farmer
- We will then open another terminal, change to the downloads directory, then start the farmer node with the following command:
# Replace `PATH_TO_FARM` with location where you want you store plot files
# Replace `WALLET_ADDRESS` below with your account address from Polkadot.js wallet
# Replace `PLOT_SIZE` with plot size in gigabytes or terabytes, for example 100G or 2T (but leave at least 60G of disk space for node and some for OS)
./subspace-farmer-ubuntu-x86_64-skylake-gemini-3h-2024-sep-03 farm --reward-address WALLET_ADDRESS path=PATH_TO_FARM,size=PLOT_SIZE
- You should see something similar in the terminal:
2022-06-02T00:02:04.552120Z INFO subspace_farmer::commands::farm: Connecting to node at ws://127.0.0.1:9944
2022-06-02T00:02:04.557220Z INFO jsonrpsee_client_transport::ws: Connection established to target: Target sockaddrs: , host: "127.0.0.1", host_header: "127.0.0.1:9944", _mode: Plain, path_and_query: "/"
2022-06-02T00:02:04.575669Z INFO subspace_farmer::commands::farm: Opening object mapping
2022-06-02T00:02:04.617553Z INFO subspace_farmer::multi_farming: Opening plot
2022-06-02T00:02:04.645422Z INFO subspace_farmer::multi_farming: Opening commitments
2022-06-02T00:02:04.666925Z INFO subspace_farmer::farming: Subscribing to slot info notifications
2022-06-02T00:02:04.688218Z INFO subspace_farmer::archiving: Subscribing to archived segments
2022-06-02T00:02:04.689129Z INFO subspace_farmer::commands::farm: WS RPC server listening on 127.0.0.1:9955
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=0
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=1
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=2
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=3
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=4
2022-06-02T00:02:09.492868Z INFO subspace_farmer::archiving: Plotted segment segment_index=5
- You are now farming! Just wait for your node to fully sync, and for your farmer to fully plot.
Step 1: Prepare Values
- Input your parameters in the provided form and click
Generate
. Don't forget to specify your reward address instead of a default one!
Step 2: Fill in Generator
Docker Compose File Generator
Step 3: Execute Docker Compose
Copy the generated
docker-compose.yaml
file.Create the
subspace
directory and thedocker-compose.yaml
file in it. Paste the output from the generator into the file.Now go to directory with
docker-compose.yaml
and typedocker compose up -d
to start everything
You can read logs with docker compose logs --tail=1000 -f
, for the rest read Docker Compose CLI reference.
Create a New User for Autonomys:
Running a node as a root user carries significant risks for the system. It is recommended to create a separate user for this purpose.
sudo useradd -m -p ! -s /sbin/nologin -c "" subspace
You can also use an existing user, but having a separate user enhances the security of your server.
Switch to the Newly Created User:
sudo su subspace -s /bin/bash
Create a Directory for Executable Files:
mkdir -p ~/.local/bin
Download the Executable Files, using the appropriate commands:
x86_64 Ubuntu Executables
Version 2 - for older processors since ~2009 and some old VMs
wget -O ~/.local/bin/subspace-node https://github.com/autonomys/subspace/releases/download/gemini-3h-2024-sep-03/subspace-node-ubuntu-x86_64-v2-gemini-3h-2024-sep-03
wget -O ~/.local/bin/subspace-farmer https://github.com/autonomys/subspace/releases/download/gemini-3h-2024-sep-03/subspace-farmer-ubuntu-x86_64-v2-gemini-3h-2024-sep-03
Version skylake - For newer processors since ~2015
wget -O ~/.local/bin/subspace-node https://github.com/autonomys/subspace/releases/download/gemini-3h-2024-sep-03/subspace-node-ubuntu-x86_64-skylake-gemini-3h-2024-sep-03
wget -O ~/.local/bin/subspace-farmer https://github.com/autonomys/subspace/releases/download/gemini-3h-2024-sep-03/subspace-farmer-ubuntu-x86_64-skylake-gemini-3h-2024-sep-03
Aarch64/64-bit Raspberry Pi Executables
wget -O ~/.local/bin/subspace-node https://github.com/autonomys/subspace/releases/download/gemini-3h-2024-sep-03/subspace-node-ubuntu-aarch64-gemini-3h-2024-sep-03
wget -O ~/.local/bin/subspace-farmer https://github.com/autonomys/subspace/releases/download/gemini-3h-2024-sep-03/subspace-farmer-ubuntu-aarch64-gemini-3h-2024-sep-03
By default, these commands download the executable files to the ~/.local/bin
directory.
You can change the directory by modifying the respective string.
You can use the same commands to update the node.
Make the Files Executable:
chmod +x ~/.local/bin/subspace-node
chmod +x ~/.local/bin/subspace-farmer
Create a Directory for Node and Farmer Data:
mkdir -p ~/.local/share
Exit from the User:
exit
Generate Contents for the Service Files, replacing the relevant fields. Remember to change the username if setting up the node from a regular user:
Systemd Service File Generator
Open the Node Service File and Paste the Corresponding Generated Content:
EDITOR=nano sudo -e /etc/systemd/system/subspace-node.service
Open the Farmer Service File and Paste the Corresponding Generated Content:
EDITOR=nano sudo -e /etc/systemd/system/subspace-farmer.service
Enable and Start the Node and Farmer:
sudo systemctl enable --now subspace-{node,farmer}
Useful Commands
Start Node:
sudo systemctl start subspace-node
Start Farmer:
sudo systemctl start subspace-farmer
Stop Node:
sudo systemctl stop subspace-node
Stop Farmer:
sudo systemctl stop subspace-farmer
Enable Node (for automatic startup on system boot):
sudo systemctl enable subspace-node
Enable Farmer (for automatic startup on system boot):
sudo systemctl enable subspace-farmer
Disable Node (to prevent automatic startup on system boot):
sudo systemctl disable subspace-node
Disable Farmer (to prevent automatic startup on system boot):
sudo systemctl disable subspace-farmer
Check Node Service Status:
sudo systemctl status subspace-node
Check Farmer Service Status:
sudo systemctl status subspace-farmer
View Node Logs:
sudo journalctl -f -o cat -u subspace-node
View Farmer Logs:
sudo journalctl -f -o cat -u subspace-farmer
Count Farmer Rewards Received in the Last Hour:
sudo journalctl -o cat -u subspace-farmer --since="1 hour ago" | grep -i "Successfully signed reward hash" | wc -l
Upgrade
To upgrade a node and farmer, first, stop running services:
sudo systemctl stop subspace-{node,farmer}
After using the commands from the beginning of the manual, download the executable files of the new release. And if you installed under a regular user, you will need to switch to that user beforehand.
Now you can start the services:
sudo systemctl start subspace-{node,farmer}
Build from source (Linux)
If you're running unsupported Linux distribution or CPU architecture, you may try to build binaries yourself from source.
NOTE: This is primarily targeted at tech-savvy users and not recommended unless you know what you're doing. Please try to find answer to your question online before reaching out to maintainers.
You'll have to have Rust toolchain installed as well as LLVM, Clang and CMake in addition to usual developer tooling (Ubuntu example):
sudo apt-get install llvm clang cmake
The build with LLVM + Clang 16 ends with UnknownOpcode(192)
error due to breaking changes concerning WASM in LLVM 16. You can read more about this issue here. At this point, the solution is to use LLVM + Clang 15 and add the -Z build-std
flag to the cargo build
command.
Now clone the source and build snapshot snapshot-2023-aug-18
(replace occurrences with the snapshot you want to build):
git clone https://github.com/autonomys/subspace.git
cd subspace
git checkout snapshot-2023-aug-18
cargo build \
--profile production \
--bin subspace-node \
--bin subspace-farmer
You'll find two binaries under target/production
directory once it succeeds, after which refer to instructions above on how to use them.
Your insights on our releases elevate our progress. Fill out this form, your voice will be heard and addressed.
If you would like to learn more about how the syncing, plotting and farming processes works on the Autonomys Network, please refer to our Autonomys Academy links below.