Skip to main content

Install

Multiple Versions Available
  • 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.

Available Parameters

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

Substrate Address Needed

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.

Step 1: Download the Advanced CLI Executables


Step 2: Start the Advanced CLI Node


  1. Open your terminal and navigate to the directory where you downloaded the binaries. For example, if you downloaded them to ~/Downloads, use:

    cd ~/Downloads
  2. Make the farmer and node executable:

    chmod +x subspace-farmer-ubuntu-x86_64-skylake-mainnet-2024-nov-28
    chmod +x subspace-node-ubuntu-x86_64-skylake-mainnet-2024-nov-28
  3. 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-28 \
    run \
    --chain mainnet \
    --base-path "<NODE_DATA_PATH>" \
    --name "<YOUR_NODE_NAME>" \
    --farmer
note

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


Farm Location Guidance

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.

  1. 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-28 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.

Farming multiple plots

path=PATH_TO_FARM,size=PLOT_SIZE path=ADDITIONAL_PATH_TO_FARM,size=PLOT_SIZE

Learn More About Syncing, Plotting & Farming
Leave Feedback!

Help us improve by sharing your feedback on our releases. We’re eager to hear from you and make things better!