Install
We offer several versions of our releases to accommodate different CPU architectures:
- Skylake: Optimized for Intel Skylake and newer CPUs, as well as AMD Ryzen processors. Ideal for PCs manufactured from 2015 onward.
- Legacy (x86-64-v2): Designed for Intel Broadwell, Haswell, and older CPUs, along with their AMD counterparts. Suitable for systems built between 2009 and 2015 and for virtual environments that do not support Skylake instructions.
For the latest binaries and source code, please visit the Releases section on our GitHub.
Advanced CLI Installation Guide
To use this software, you'll need a Substrate wallet address. For help with creating a Substrate wallet, check out our guides for SubWallet (recommended) or Polkadot.js.
We’ll provide the files you need for your operating system:
- subspace-node: The node implementation for the Subspace protocol.
- subspace-farmer: Manages plotting, replotting, and farming rewards.
- 🐧 Ubuntu
- 🖼️ Windows
- 🍎 macOS
- 🤖 Linux Service (SystemD)
- 🐳 Docker
- 🛠️ Build from Source
Step 1: Download the Advanced CLI Executables
Step 2: Start the Advanced CLI Node
-
Open your terminal and navigate to the directory where you downloaded the binaries. For example, if you downloaded them to
~/Downloads
, use:cd ~/Downloads
-
Make the
farmer
andnode
executable:chmod +x subspace-farmer-ubuntu-x86_64-skylake-gemini-3h-2024-oct-03
chmod +x subspace-node-ubuntu-x86_64-skylake-gemini-3h-2024-oct-03 -
Start the node using the command below. Replace
<NODE_DATA_PATH>
with the path where you want to store the node database and<YOUR_NODE_NAME>
with a nickname of your choice. Ensure you copy the entire command:./subspace-node-ubuntu-x86_64-skylake-gemini-3h-2024-oct-03 \
run \
--chain gemini-3h \
--base-path "<NODE_DATA_PATH>" \
--name "<YOUR_NODE_NAME>" \
--farmerYou should see output similar to this in your terminal:
2024-09-04T06:42:56.744203Z INFO subspace_node::commands::run: Subspace
2024-09-04T06:42:56.744231Z INFO subspace_node::commands::run: ✌️ version 0.1.0-5c484f36890
2024-09-04T06:42:56.744235Z INFO subspace_node::commands::run: ❤️ by Subspace Labs <https://subspace.network>
2024-09-04T06:42:56.744238Z INFO subspace_node::commands::run: 📋 Chain specification: Subspace Gemini 3h
2024-09-04T06:42:56.744241Z INFO subspace_node::commands::run: 🏷 Node name: cool-farmer-name
2024-09-04T06:42:56.744243Z INFO subspace_node::commands::run: 💾 Node path: /opt/autonomys
2024-09-04T06:43:00.165801Z INFO Consensus: subspace_networking::constructor: DSN instance configured. allow_non_global_addresses_in_dht=false peer_id=12D3KooWB>
2024-09-04T06:43:00.166299Z INFO Consensus: libp2p_swarm: local_peer_id=12D3KooWB6VSys21gqsCGxVKkjYXk8kpoyTCkp5ogcncmMFFsaN1
2024-09-04T06:43:00.166467Z INFO Consensus: subspace_service: Subspace networking initialized: Node ID is 12D3KooWB6VSys21gqsCGxVKkjYXk8kpoyTCkp5ogcncmMFFsaN1
2024-09-04T06:43:00.167026Z INFO Consensus: block_relay: relay::consensus block server: starting
2024-09-04T06:43:00.167401Z INFO Consensus: sub-libp2p: 🏷 Local node identity is: 12D3KooWB6VSys21gqsCGxVKkjYXk8kpoyTCkp5ogcncmMFFsaN1
2024-09-04T06:43:00.167424Z INFO Consensus: sub-libp2p: Running libp2p network backend
2024-09-04T06:43:00.167447Z INFO Consensus: subspace_service: DSN listening on /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWB6VSys21gqsCGxVKkjYXk8kpoyTCkp5ogcncmMFFsaN1
2024-09-04T06:43:00.171109Z INFO Consensus: subspace: 🧑🌾 Starting Subspace Authorship worker
2024-09-04T06:43:00.174544Z INFO Consensus: sc_consensus_subspace::archiver: Resuming archiver from last archived block last_archived_block_number=3124818
2024-09-04T06:43:00.174699Z INFO Consensus: sc_consensus_subspace::archiver: Archiving already produced blocks 3124819..=3131493
2024-09-04T06:43:00.176495Z INFO Consensus: subspace_service: DSN listening on /ip4/192.168.0.101/tcp/30333/p2p/12D3KooWB6VSys21gqsCGxVKkjYXk8kpoyTCkp5ogcncmMFFsaN1
2024-09-04T06:43:00.190399Z INFO Consensus: subspace_service::task_spawner: 📦 Highest known block at #3131593
2024-09-04T06:43:00.191139Z INFO Consensus: sc_rpc_server: Running JSON-RPC server: addr=0.0.0.0:9944, allowed origins=["*"]
2024-09-04T06:43:00.192326Z INFO subspace_metrics: Metrics server started. endpoints=[0.0.0.0:9091]
2024-09-04T06:43:00.192353Z INFO actix_server::builder: starting 2 workers
2024-09-04T06:43:00.192448Z INFO actix_server::server: Tokio runtime found; starting in existing Tokio runtime
2024-09-04T06:43:00.658988Z INFO Consensus: sub-libp2p: 🔍 Discovered new external address for our node: /ip4/1.2.3.4/tcp/30333/p2p/12D3KooWB6VSys21gqsCGxVKkjYXk8kpoyTCkp5ogcncmMFFsaN1
2024-09-04T06:43:02.172777Z INFO Consensus: subspace_service::sync_from_dsn: Received notification to sync from DSN reason=WentOnlineSubstrate
2024-09-04T06:43:05.192676Z INFO Consensus: substrate: 💤 Idle (6 peers), best: #3131593 (0xb29f…c04e), finalized #3063319 (0x366a…fd89), ⬇ 13.7kiB/s ⬆ 5.2kiB/s
2024-09-04T06:43:10.193308Z INFO Consensus: substrate: 💤 Idle (10 peers), best: #3131593 (0xb29f…c04e), finalized #3063319 (0x366a…fd89), ⬇ 34.8kiB/s ⬆ 3.6kiB/s
2024-09-04T06:43:40.197094Z INFO Consensus: substrate: ⚙️ Preparing 0.0 bps, target=#3131599 (21 peers), best: #3131616 (0xb29f…c04e), finalized #3063319 (0x366a…fd89), ⬇ 53.9kiB/s ⬆ 10.5kiB/s
2024-09-04T06:43:45.197731Z INFO Consensus: substrate: ⚙️ Preparing 0.0 bps, target=#3131600 (22 peers), best: #3131616 (0xb29f…c04e), finalized #3063319 (0x366a…fd89), ⬇ 29.5kiB/s ⬆ 9.7kiB/s
2024-09-04T06:43:46.197731Z INFO Consensus: substrate: 🏆 Imported #3131616 (0xe5c6…c82e → 0x6bae…d56d)
2024-09-04T06:44:46.197731Z INFO Consensus: substrate: 💤 Idle (40 peers), best: #3131617 (0x4b91…1060), finalized #3063319 (0x366a…fd89), ⬇ 225.3kiB/s ⬆ 23.9kiB/s
Step 3: Start the Advanced CLI Farmer
To avoid running out of space on your operating system or node database drive, it's recommended to store your plots on a separate drive.
If you choose to use the same drive for plots and the node database, make sure to leave at least 60 GiB of free space for node database growth. This helps ensure that you have enough space for both system operations and node functionality.
-
Open a new terminal and navigate to the directory where the Subspace farmer binary is located. Start the farmer with the following command:
# Replace <WALLET_ADDRESS> with your wallet address
# Replace <PATH_TO_FARM> with the directory where you want to store the plot
# Replace <PLOT_SIZE> with the size of the plot (e.g. 10GB, 2TiB)
./subspace-farmer-ubuntu-x86_64-skylake-gemini-3h-2024-oct-03 farm \
--reward-address <WALLET_ADDRESS> \
path=<PATH_TO_FARM>,size=<PLOT_SIZE>You should see output similar to this in your terminal:
2024-09-09T20:36:25.712636Z INFO subspace_farmer::commands::farm: Connecting to node RPC url=ws://192.168.0.101:9944
2024-09-09T20:36:25.716493Z INFO subspace_farmer::node_client::caching_proxy_node_client: Downloading all segment headers from node...
2024-09-09T20:36:25.724936Z INFO subspace_farmer::node_client::caching_proxy_node_client: Downloaded all segment headers from node successfully
2024-09-09T20:36:25.727059Z INFO subspace_networking::constructor: DSN instance configured. allow_non_global_addresses_in_dht=false peer_id=12D3KooWGHnvGGALKoN8GWKsRr8hemN2kkr6Q96Y4V4BXLerSS98 protocol_version=/subspace/2/0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34
2024-09-09T20:36:25.727805Z INFO libp2p_swarm: local_peer_id=12D3KooWGHnvGGALKoN8GWKsRr8hemN2kkr6Q96Y4V4BXLerSS98
2024-09-09T20:36:28.661238Z INFO {farm_index=0}: subspace_farmer::single_disk_farm::plot_cache: Checking plot cache contents, this can take a while
2024-09-09T20:36:28.664650Z INFO {farm_index=0}: subspace_farmer::single_disk_farm::plot_cache: Finished checking plot cache contents
2024-09-09T20:36:28.671027Z INFO {farm_index=0}: subspace_farmer::commands::farm: Farm 0:
2024-09-09T20:36:28.671041Z INFO {farm_index=0}: subspace_farmer::commands::farm: ID: 01J76ZD8HXC742BQ40V5W22K3P
2024-09-09T20:36:28.671045Z INFO {farm_index=0}: subspace_farmer::commands::farm: Genesis hash: 0x0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34
2024-09-09T20:36:28.671048Z INFO {farm_index=0}: subspace_farmer::commands::farm: Public key: 0xa082fac986cd03f70bdfa1d0c1885bdc384da1b8c09f43aa1687b1e00f74c014
2024-09-09T20:36:28.671054Z INFO {farm_index=0}: subspace_farmer::commands::farm: Allocated space: 14.0 TiB (15.4 TB)
2024-09-09T20:36:28.671057Z INFO {farm_index=0}: subspace_farmer::commands::farm: Directory: /mnt/plots/15013
2024-09-09T20:36:28.671072Z INFO subspace_farmer::commands::farm: Collecting already plotted pieces (this will take some time)...
2024-09-09T20:36:28.671161Z INFO subspace_farmer::farmer_cache: Initializing piece cache
2024-09-09T20:36:32.734041Z INFO subspace_farmer::commands::farm: Finished collecting already plotted pieces successfully
2024-09-09T20:36:32.734368Z INFO actix_server::builder: starting 2 workers
2024-09-09T20:36:32.734473Z INFO actix_server::server: Tokio runtime found; starting in existing Tokio runtime
2024-09-09T20:36:32.735137Z INFO {farm_index=0}: subspace_farmer::single_disk_farm::plotting: Subscribing to archived segments
2024-09-09T20:36:32.735211Z INFO {farm_index=0}: subspace_farmer::single_disk_farm::farming: Subscribing to slot info notifications
2024-09-09T20:36:32.735247Z INFO {farm_index=0}: subspace_farmer::single_disk_farm::reward_signing: Subscribing to reward signing notifications
2024-09-09T20:36:32.736239Z INFO subspace_farmer::commands::shared::network: DSN listening on /ip4/127.0.0.1/tcp/30433/p2p/12D3KooWGHnvGGALKoN8GWKsRr8hemN2kkr6Q96Y4V4BXLerSS98
2024-09-09T20:36:32.738336Z INFO subspace_farmer::commands::shared::network: DSN listening on /ip4/192.168.0.101/tcp/30433/p2p/12D3KooWGHnvGGALKoN8GWKsRr8hemN2kkr6Q96Y4V4BXLerSS98
2024-09-09T20:36:32.758708Z INFO subspace_farmer::commands::shared::network: DSN listening on /ip4/172.17.0.1/tcp/30433/p2p/12D3KooWGHnvGGALKoN8GWKsRr8hemN2kkr6Q96Y4V4BXLerSS98
2024-09-09T20:37:16.959290Z INFO subspace_farmer::farmer_cache: Synchronizing piece cache
2024-09-09T20:37:17.151681Z INFO {farm_index=0}:{sector_index=11800}: subspace_farmer::single_disk_farm::plotting: Plotting sector (82.04% complete)
2024-09-09T20:37:17.151929Z INFO {farm_index=0}:{sector_index=11801}: subspace_farmer::single_disk_farm::plotting: Plotting sector (82.04% complete)
2024-09-09T20:37:17.152064Z INFO {farm_index=0}:{sector_index=11802}: subspace_farmer::single_disk_farm::plotting: Plotting sector (82.05% complete)
2024-09-09T20:37:17.155181Z INFO subspace_farmer::farmer_cache: Finished piece cache synchronization
2024-09-09T20:37:32.155736Z INFO {farm_index=0}:{sector_index=11803}: subspace_farmer::single_disk_farm::plotting: Plotting sector (82.06% complete)
You Are Now Farming!
You're all set! After your node syncs, plotting will start, and each plotted sector will automatically begin farming and become eligible to earn rewards.
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-oct-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-oct-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.