Install
- 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.
A complete list of parameters and their functions can be obtained using the --help
option with both subspace-node
and subspace-farmer
.
Advanced CLI Installation Guide
To use this software, you need a Substrate wallet address. For assistance in creating a Substrate wallet, refer to our guides for ✨ SubWallet or Polkadot.js.
If you have a previous wallet address that starts with st
, you can still use it, or you can transform it to the new su
prefix. You can convert your existing wallet address using the tool available at ss58.org. Previously, our testnets used the prefix 2254
, while the Taurus testnet and Autonomys mainnet use the prefix 6094
.
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-mainnet-2024-nov-18
chmod +x subspace-node-ubuntu-x86_64-skylake-mainnet-2024-nov-18 -
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-mainnet-2024-nov-18 \
run \
--chain mainnet \
--base-path "<NODE_DATA_PATH>" \
--name "<YOUR_NODE_NAME>" \
--farmer
Using run, setting --base-path and specifying --chain is mandatory.
You 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: Autonomys Mainnet
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
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-mainnet-2024-nov-18 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-mainnet-2024-nov-18.exe `
run `
--chain mainnet `
--base-path NODE_DATA_PATH `
--farmer `
--name "INSERT_YOUR_ID"
Using run, setting --base-path and specifying --chain is mandatory.
- 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 Autonomys Mainnet
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-mainnet-2024-nov-18.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-mainnet-2024-nov-18
chmod +x subspace-node-macos-aarch64-mainnet-2024-nov-18
- 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-mainnet-2024-nov-18 \
run \
--chain mainnet \
--base-path NODE_DATA_PATH \
--farmer \
--name "INSERT_YOUR_ID"
Using run, setting --base-path and specifying --chain is mandatory.
- 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: Autonomys Mainnet
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-2024-oct-24/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-mainnet-2024-nov-18 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.
---
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
Node:
wget -O ~/.local/bin/subspace-node https://github.com/autonomys/subspace/releases/download/mainnet-2024-nov-18/subspace-node-ubuntu-x86_64-v2-mainnet-2024-nov-18
Farmer:
wget -O ~/.local/bin/subspace-farmer https://github.com/autonomys/subspace/releases/download/mainnet-2024-nov-18/subspace-farmer-ubuntu-x86_64-v2-mainnet-2024-nov-18
Version skylake - For newer processors since ~2015
Node:
wget -O ~/.local/bin/subspace-node https://github.com/autonomys/subspace/releases/download/mainnet-2024-nov-18/subspace-node-ubuntu-x86_64-skylake-mainnet-2024-nov-18
Farmer:
wget -O ~/.local/bin/subspace-farmer https://github.com/autonomys/subspace/releases/download/mainnet-2024-nov-18/subspace-farmer-ubuntu-x86_64-skylake-mainnet-2024-nov-18
Aarch64/64-bit Raspberry Pi Executables
Node:
wget -O ~/.local/bin/subspace-node https://github.com/autonomys/subspace/releases/download/mainnet-2024-nov-18/subspace-node-ubuntu-aarch64-mainnet-2024-nov-18
Farmer:
wget -O ~/.local/bin/subspace-farmer https://github.com/autonomys/subspace/releases/download/mainnet-2024-nov-18/subspace-farmer-ubuntu-aarch64-mainnet-2024-nov-18
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}
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.
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
Now clone the source and build snapshot mainnet-2024-nov-18
(replace occurrences with the snapshot you want to build):
git clone https://github.com/autonomys/subspace.git
cd subspace
git checkout mainnet-2024-nov-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.
path=PATH_TO_FARM,size=PLOT_SIZE path=ADDITIONAL_PATH_TO_FARM,size=PLOT_SIZE
Help us improve by sharing your feedback on our releases. We’re eager to hear from you and make things better!