Pulsar (Recommended)
Pulsar (previously Subspace CLI or Simple CLI) is the recommended way to farm on the Subspace Network. To get started, follow the guide below. For more information, you can check out the project README on GitHub.
Pre-Requisites
System Requirements
Make sure you have a stable network connection. During the plotting phase of farming, it can be network intensive.
This may impact your network usage so please check your network connection if you have a hard data limit.
Pulsar requires commodity hardware specs to operate. At a minimum, it is recommended to have:
Hardware | Specs |
---|---|
CPU | 4 Core+ |
RAM | 8GB+ |
SWAP | 4GB |
Storage | 100GB SSD |
A swap is only necessary if you have a low amount of RAM.
If BTRFS is used with Subspace, the directory/whole file system must be CoW disabled with the following command prior to starting Subspace, because it only applies to newly created files.
Command to Disable CoW on BTRFS
sudo chattr +C path/to/data/dir
Alternatively, non-CoW file systems like ext4 or XFS can be used instead.
Using redundancy (RAID1/5/6, RAIDZ and others) on a filesystem with plot makes no sense, as the farmer uses checksums to verify the integrity of the plot, and is able to recover corrupted blocks if necessary in most cases. See scrub
command below.
XFS
sudo mkfs.xfs -d su=32k,sw=1 /path/to/dev
Then use largeio
and swalloc
mount options.
ext4
sudo mkfs.ext4 -E stride=8,stripe-width=8 /path/to/dev
You can change these settings for an existing file system:
sudo tune2fs -E stride=8,stripe-width=8 /path/to/dev
Getting A Crypto Wallet
Before running anything you need to have a wallet where you'll receive testnet coins. Follow our how-to guides in the Wallets section of the documentation for steps on how to get your wallet setup.
Required ports
Currently, a few ports need to be exposed for node to work properly.
If you have a server with no firewall, there is nothing to be done, but otherwise make sure to open the following TCP ports for incoming connections.
30333
30433
30533
On the desktop side if you have a router in front of your computer, you'll need to forward TCP ports to the machine on which your node is running (how this is done varies from router to router, but there is always a feature like this, refer to How to Forward Ports for a more in-depth tutorial). If you're connected directly without any router, then again nothing needs to be done in such case.
Installation
Pulsar is in alpha. Please feel free to file bug reports on our GitHub issues.
Prefer A video? Expand for our installation video
Download Binaries
Precompiled versions of the Pulsar is hosted on GitHub. This is the recommended way to install the application. Please find the appropriate binary for your operating system.
- 🖼️ Windows
- 🍎macOS
- 🐧Ubuntu
Some older processors/VMs are no longer supported by official releases, but can still be compiled manually if desired
- Download the Release Binary below.
Expand for Version 2 - For older processors since ~2009 and some old VMs
Expand for Version 3 - For newer processors since ~2015
- Open Powershell, type
cd Downloads
(orcd Your-File-Location
).
The warning below may appear 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. Please select 'Allow access' to continue farming.
Some older processors/VMs are no longer supported by official releases, but can still be compiled manually if desired
- Download your Release Binary below.
Mac CLI Executable (Intel)
Mac CLI Executable (Apple M Series)
- Extract the
.zip
file. - Open Terminal, type
cd Downloads
(orcd Your-File-Location
). - Make the binary executable by running:
chmod +x pulsar-macos-x86_64-v0.6.10-alpha
(Intel Chip)chmod +x pulsar-macos-aarch64-v0.6.10-alpha
(Apple M Series)
Your Mac may not let you open/initialize the file because of unidentified developer restrictions. To resolve this, go to Settings-> Security&Privacy -> General -> Allow
Some older processors/VMs are no longer supported by official releases, but can still be compiled manually if desired
- Download your Release Binary below.
Expand for Ubuntu Executable
Version 2 - for older processors since ~2009 and some old VMs
Version 3 - For newer processors since ~2015
Expand for Aarch64/64-bit Raspberry Pi Executables
- Open Terminal, type
cd Downloads
(orcd Your-File-Location
). - Make the binary executable by running:
chmod +x pulsar-ubuntu-x86_64-skylake-v0.6.10-alpha
(Ubuntu)chmod +x pulsar-ubuntu-aarch64-v0.6.10-alpha
(Ubuntu aarch64)
Configuration
To start we have to initialize our Farmer, this can be done with:
- 🖼️ Windows
- 🍎 macOS
- 🐧 Ubuntu
./pulsar-windows-x86_64-skylake-v0.6.10-alpha.exe init
Operating systems, such as Windows, allocate memory for both visible tasks and behind-the-scenes processes. While this memory can be readily freed when necessary, Windows occasionally may not display these allocations accurately due to certain system nuances. High RAM consumption should not be a cause for concern.
./pulsar-macos-x86_64-v0.6.10-alpha init
Apple M Series:
./pulsar-macos-aarch64-v0.6.10-alpha init
./pulsar-ubuntu-x86_64-skylake-v0.6.10-alpha init
Ubuntu Executable (aarch64):
./pulsar-ubuntu-aarch64-v0.6.10-alpha init
This will prompt you to setup your Pulsar configurations to begin farming. You should see a similar prompt like so (some info might be different than shown here w.r.t your OS):
version: 0.6.0
Configuration creation process has started...
Do you have an existing farmer/reward address? [y/n]: y
Enter your farmer/reward address: REDACTED_ADDRESS
Enter your node name to be identified on the network(defaults to `subspace`, press enter to use the default):
Specify a path for storing plot files (press enter to use the default: `"/home/username/.local/share/pulsar/farms"`):
Specify a path for storing node files (press enter to use the default: `"/home/username/.local/share/pulsar/node"`):
Specify a plot size (defaults to `2.0 GB`, press enter to use the default):
Specify the chain to farm. Available options are: [Gemini3f, Dev, DevNet].
Defaults to `Gemini3f`, press enter to use the default:
Configuration has been generated at /home/username/.config/pulsar
Ready for lift off! Run the follow command to begin: `"path/to/executable" farm`
After running pulsar init
, the prompt will display where the settings.toml
is generated. However in case you missed it, you can find the file based on your operating system:
- 🖼️ Windows
- 🍎macOS
- 🐧Ubuntu
Your settings.toml
will be found in $FOLDERID_RoamingAppData/pulsar/settings.toml
Your settings.toml
will be found in $HOME/Library/Application Support/pulsar/settings.toml
Your settings.toml
will be found in $HOME/.config/pulsar/settings.toml
Gemini 3 Testnet
If you are using the default configurations from Pulsar, you are ready to go with the Gemini 3 Testnet. Alternatively, you can ensure this occurs by manually setting the network like so.
Open your settings.toml
directory and ensure your chain
is correctly specified to gemini-3f
as so:
# settings.toml
[node]
chain = 'gemini-3f'
# ... redacted ...
Local Development
To run Pulsar in a local development mode, modify your settings.toml
and ensure your chain
points to dev
:
# settings.toml
[node]
chain = 'dev'
# ... redacted ...
Farming
To begin farming on the network, just run the farm
command with the CLI like so:
- 🖼️ Windows
- 🍎 macOS
- 🐧 Ubuntu
./pulsar-windows-x86_64-skylake-v0.6.10-alpha.exe farm
Intel Chip:
./pulsar-macos-x86_64-v0.6.10-alpha farm
Apple M1 Chip:
./pulsar-macos-aarch64-v0.6.10-alpha farm
Ubuntu:
./pulsar-ubuntu-x86_64-skylake-v0.6.10-alpha farm
Ubuntu Executable (aarch64):
./pulsar-ubuntu-aarch64-v0.6.10-alpha farm
You should see the farmer and node start successfully and begin syncing, plotting, and then farming:
Starting node ... (this might take up to couple of minutes)
Node started successfully!
Starting farmer ...
Farmer started successfully!
Initial plotting for plot: #0 (/home/username/.local/share/pulsar/farms)
⠁ [00:00:00] 3% [=> ]
(31.00 MiB/953.67 MiB) 157.35 GiB/s, plotting, ETA: 0s
That's it! Enjoy and Happy Farming!
Moving the Farming Process to the Background
- Tmux
- Screen
If you want to learn more about Tmux and its options check out their Repo here
- Create a new tmux session using a socket file named farming
$ tmux -S farming
- Move process to background by detaching
Ctrl+b d OR ⌘+b d (Mac)
- To re-attach
$ tmux -S farming attach
- Alternatively, you can use the following single command to both create (if not exists already) and attach to a session:
$ tmux new-session -A -D -s farming
- To delete farming session
$ tmux kill-session -t farming
If you want to learn more about Screen and its options check out their Webpage here
- Create new screen using a socket file named farming
$ screen -S farming
- Move process to background by detaching
Ctrl+d a OR ⌘+d a (Mac)
- To re-attach
$ screen -r farming
- Alternatively, you can use the following single command to both create (if not exists already) and attach to a session:
$ screen -D -R -S farming
- To delete farming session
$ screen -S farming -X quit
Having Trouble?
If you are facing issues with your node/farmer you can try a few of the following things below, if you are unable to get your issue resolved please check our Forums to see if your issue may have been solved, if its a new one feel free to post it! You can also join our Discord for additional Peer to Peer help.
We have included a few tutorials below that may help you in your support journey, this is not an all inclusive list but we welcome contributions
Wipe Node & Farmer
Occasionally after updating to a new version of the Pulsar you will need to wipe your node and farmer, generally this should not be required but can be attempted if your farmer is having issues after having had worked fine previously.
To simply restart the node, go to the terminal where you started the farm
command, and press Ctrl + C
you should see a shutdown message appear and the application will attempt a simple shutdown, if you dont see the message press Ctrl + C
again to force shutdown. You can then simply start the farmer again with the farm
command you used prior.
Use the same file name as the previous init and farm steps, then add the wipe command to free the previous storage that was being used. Generally, only do this if you have severe errors and are prompted by a staff member.
./pulsar-file-name wipe
After wiping, follow the init
and farm
steps above to start farming again!
View your Logs
A good place to start if you are facing trouble is by viewing your logs and seeing if there are any errors or insights that might be available. You can find the location for your logs below
- 🖼️ Windows
- 🍎macOS
- 🐧Ubuntu
Your Logs will be found in %USERPROFILE%/AppData/Local/pulsar/logs
Your Logs will be found in $HOME/Library/Logs/pulsar/
Your Logs will be found in $HOME/.local/share/pulsar/logs
Enable Rust Backtrace
When running the Subspace Network Farmer & Node, sometimes you may encounter an error message that includes a line similar to the following:
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
This error message means that Rust (the programming language that Subspace Network Farmer & Node is written in) has encountered a problem and has provided a diagnostic backtrace that can help diagnose the issue. However, by default, the backtrace is not displayed. To see the backtrace, you need to enable the RUST_BACKTRACE
environment variable.
In this section, we will show you how to enable the RUST_BACKTRACE
environment variable on Linux, macOS, and Windows (PowerShell).
- 🖼️ Windows
- 🍎macOS
- 🐧Ubuntu
Enabling RUST_BACKTRACE on Windows (PowerShell)
To enable the RUST_BACKTRACE
environment variable on Windows using PowerShell, follow these steps:
Open a PowerShell window.
Type the following command:
$Env:RUST_BACKTRACE=1
Press Enter.
After exporting the environment variable, run the Pulsar as usual, and any errors encountered will display the backtrace.
Enabling RUST_BACKTRACE on macOS
To enable the RUST_BACKTRACE
environment variable on macOS, follow these steps:
Open a terminal window.
Type the following command:
export RUST_BACKTRACE=1
Press Enter.
After exporting the environment variable, run the Pulsar as usual, and any errors encountered will display the backtrace.
Enabling RUST_BACKTRACE on Linux
To enable the RUST_BACKTRACE
environment variable on Linux, follow these steps:
Open a terminal window.
Type the following command:
export RUST_BACKTRACE=1
Press Enter.
After exporting the environment variable, run the Pulsar as usual, and any errors encountered will display the backtrace.