Set up your own DATUM solo mining pool on a Start9 node
As you may have learned from our previous guides, there are many ways to mine with your Bitaxe/Nerdaxe. You can connect to a solo (lottery mining) pool, like Solo CK or Public Pool, or you can join a pool that distributes the rewards proportionally based on the work your miner submits, in particularly Braiins and OCEAN are appealing due the the availability of payouts using the Lightning Network. Finally, when mining on OCEAN, you can even construct your own block templates using DATUM.
However, even in the case of mining with DATUM on OCEAN, while you do construct your own block templates, you still depend on OCEAN’s server to keep track of your miners work and further interact with the network. But what if you wanted even more sovereignty? What if don’t want to rely on third parties to provide you infrastructure to be mining with? Is that even possible?
Of course it is, but similarly to self custody, you have to take matters in your own hands. You have to host your own node, with your own Stratum server (in this case it’s DATUM) and you mine on your own, solo, you with your hardware, making your own blocks and hashing against the the whole network’s hashrate, not relying on any third parties for any part of the process.
This guide assumes you already have a Start9 Bitcoin node. If you don’t, do consider getting yourself one, or building one from scratch. Let’s get into it!
Heads up! Setting up DATUM requires you to SSH into your node (from terminal), if you haven’t done this already, you should first generate and set up your SSH key. You can follow Start9 instructions here. You will then have to install and configure a tool called simpleproxy, this will enable non http port forwarding, which is required by Stratum protocol.
Setting up DATUM on Start9 (Knots)
First of all, while DATUM is normally compatible with Bitcoin Core with some fine tuning, on Start9 (to make things simpler) Bitcoin Knots is a prerequisite.
Navigate to the Marketplace, change to Community Registry, search for DATUM and proceed to install it. Once installed, it will prompt you to make some automatic adjustments to the Knots config, which you should accept. You will also be prompted to adjust the config of DATUM it self. Make the following adjustments:

Enter a valid bitcoin address that you own the private keys to. The two tags are arbitrary, it’s what is conventionally used to identify the miner – feel free to put your nym.
Next, scroll down and open the DATUM tab.

By default, DATUM gateway comes preconfigured to mine on OCEAN. If you want to do pooled mining, you will probably want to set up lightning payouts, for instructions please refer to this guide. As we are configuring DATUM for non-pooled mining, delete the link to OCEAN’s pool in Pool Host as shown above. You can either leave or delete Pool Port and Pool Pubkey, as they are not going to be used.
Scroll down

Enabling Pool Pass Workers and Pool Pass Full Users, makes it so the bitcoin address you put in each miner will be used for reward (overwrites the address you put in the previous step, useful when connecting miners that belong to different people, for example). Always Pay Self is self explanatory. Finally, click the drop down menu of Collaborative reward sharing and change it to never. That will be it, save and exit the config setup.
Next, we will need to install and setup simpleproxy.
You will need to open up the terminal and login to Start9 over SSH. You will need to either know the local network domain (adjective-noun.local), or the IP, of your Start9 node.
ssh [email protected]
If you provided a password while setting up the SSH key, the command above will prompt you for it.
Once you’ve successfully signed in over SSH, follow (slightly modified) instructions copied from github (which can also be seen within the Start9’s DATUM “Instructions” page):
Switch to the root user:
sudo -i
Run the following command to switch to the “chrooted” environment, any system changes made now will be persisted across reboots.
/usr/lib/startos/scripts/chroot-and-upgrade
Install “simpleproxy”:
apt update && apt install simpleproxy -y
Now copy and paste the following chunk of code in one command:
echo -e '[Unit]\nDescription=Simpleproxy Datum Forward\nWants=podman.service\nAfter=podman.service\n\n[Service]\nType=simple\nRestart=always\nRestartSec=3\nExecStartPre=/bin/bash -c "/bin/systemctl set-environment IP=$(ip route | grep default | awk '''{print $9}''')"\nExecStart=/usr/bin/simpleproxy -L ${IP}:23334 -R datum.embassy:23335\n\n[Install]\nWantedBy=multi-user.target' > /lib/systemd/system/simpleproxy.datum.service
Next, copy and paste the following:
systemctl enable simpleproxy.datum.service
Then finally:
exit
Your server will now restart and will be accessible to miners on your LAN!
Important: Before starting to run the service, go to Knots service and restart it.
You can proceed to run DATUM and it should start the service and begin to run smoothly.
To connect your miner and begin trying to find a block solo, navigate into your Bitaxe/Nerdaxe dashboard. Go the Settings and as Stratum URL put the IP address of your Start9 device, or its .local domain. As Stratum Port, enter 23334. As Stratum User, enter a valid bitcoin address that you control the keys to, it can be the same as the one used in DATUM config, or not. If you want to learn more about users and workers, please look into official DATUM documentation.

Feel free to add a Fallback Stratum configuration, in case your node goes offline for whatever reason.
Save the settings and restart the miner.

To verify, feel free to check out the DATUM dashboard (clicking ‘Launch UI’ on the DATUM service page on the Start9).

Above you can see the general stats, as well as the ‘Current Stratum Job’, which is what your miner is hashing trying achieve the target.

If you go to ‘Coinbaser’, you can see that the whole block reward in the coinbase transation is set to be paid to the address you put previously.
You can also check out the logs by clicking on ‘Logs’ on the DATUM service page on your Start9.

In the logs you can see how DATUM continuously creates and updates jobs and sends it to the miner to work with.
Congratulations, you are now mining using data from your own node, hosting your own solo pool!