Start Pool Mining with Your Bitcoin Node, Now
In this post, I’m gonna try to explain how to start mining with your own Bitcoin node and signal for BIP110, using an old laptop or PC.
This is gonna be heavily opinionated and I’ll try to keep it short and brief. At the end I’ll also give some bonus tips.
If you get confused at any point, you can ask your favorite LLM for help by copy-pasting this post and telling it where you got stuck. Feel free to ask me in the replies too.
The first thing we need is a Bitcoin node. You can install it from
https://bitcoinknots.org. Depending on your OS there may be multiple options —
you can ask an LLM for help if you’re stuck, or just ask me in the replies.

For this guide we’re gonna use the GUI version. On macOS, download the (App)
variant. On Linux, after downloading the bin files, use bitcoin-qt.

Once you open the client for the first time, you’ll get an overlay for the
initial block download. Before letting it continue, go to Settings > Options
and disable “Prune block storage” — we need a full node. Click OK to
save, then restart the node via File > Exit and open it again. After that,
just let it download the chain to the tip.

Once the initial block download is done, you’ll have a working Bitcoin node — but it’s pretty barebones. To make it useful we’ll need several things: mempool.space, Electrum, DATUM, Core Lightning… Instead of downloading and installing these one by one and making sure everything connects correctly, we’re just gonna use a “compose file”. A compose file lets you set up and configure multiple things with a single command.
For this step you’ll need Docker or Podman installed on your system. I
personally use Podman. The compose file is here:
https://github.com/DeepDoge/bitcoin-kit — in the README I explained how to use
it and set it up step by step.

Once you have it ready and running, you’ll have a mempool.space web interface
for your own node, an Electrum server (including the TLS variant at port
50002), Core Lightning, and DATUM — all ready to use.
Your DATUM Gateway should be running Stratum at port 23334. You can connect
your miner on the same network to it like this: 192.168.x.x:23334 and it
should work.

The web interface above is hosted at port
7152. You can access it viahttp://localhost:7152or using the local network IP address athttp://192.168.x.x:7152.
The next step is exposing this port to the internet using tunnels. For this
we’re gonna use https://localtonet.com. After you create a localtonet account,
go to My Tunnels > TCP - UDP.

Then on that page click “Create TCP - UDP Tunnel”. In the dropdown that
opens, select TCP as the protocol type and enter your port: 23334.

After creating the tunnel, make sure the exposed server port matches. On the
tunnel item in the list, click the gear icon, then click “Change” on the
“Server Port” and set it to 23334 as well.

You can use the random subdomain address localtonet gave you for mining, which
should look like this: random123.localtonet.com:23334

Now we need to start the tunnel on the machine where we’re running the DATUM
Gateway. Click the gear icon again and select “Show SSH Command”. In the
dialog that opens, there’s an ssh command you can use to reverse proxy your
DATUM’s Stratum port over the localtonet tunnel. You can also enable “Auto
Reconnect” while you’re there.

Then all you have to do is paste the ssh command into your terminal and press
Enter.
So now we have a Bitcoin node running, DATUM Gateway running, and DATUM’s Stratum port exposed via localtonet. All that’s left is renting some hashrate from Braiins Hashpower.
Once you log in to Braiins Hashpower you’ll see the order book — asks on the
hasher side and bids on the buyer side.

What matters to us is the orders on the left side — the bids. This is where you can see the buy orders of other people like you. In the image above you can see an orange line called “Hash Value” — this is calculated based on the current network hashrate and block reward. If you place your order below that line you’re gonna earn more than you spent in the long run, and above it you’re gonna lose bitcoin.
Don’t say “I just wanna signal BIP110, idc about the cost” and place your order at the top like these dudes. That will make you lose bitcoin. The less you spend on hashrate, the more you can recycle.
Anyway, if you scroll down through the buy orders you’ll notice that after a
while the colors go from green to gray. Gray orders aren’t receiving any
hashrate from hashers at the moment. So you’ll want to place your order in the
green area if you want hashrate now — which we do.

The easiest way to create a new order is from the buy orders list. You can click
the little “+“ icon next to a buy order and place your order one sat above
it.

In the video above I’m using
mine.nomadshiba.me— that’s my custom domain pointed at the localtonet tunnel we just created. I talk about how to do that at the bottom of the article. For now you can just use the generated TCP tunnel address from localtonet:4eo7kgvsub.localto.net:23334
Once your order is open you can move it up or down using the arrow buttons next
to it.

So that’s it!
You can verify that Braiins is connected to your DATUM Gateway from the
“Clients” page.

You might also wonder: why would hashers sell their hashrate below the current Hash Value?
The reason is hashers like to have steady income to cover their electricity bills and operating costs. So they rent their hashrate out at a discount compared to the theoretical Hash Value — which is exactly what they’re doing when they rent to big miners like Foundry or AntPool & friends. Instead of renting it to them, they’re basically renting it to you now.
Bonus Tips
Becoming a listening node easily using Tor
Next important step is becoming a listening node on the Bitcoin network. WHY ?? because this will increase your connectivity in the network, let more nodes reach you, and let you collect more garbage from the network.
Alright so first step is of course installing TOR. we are not installing tor browser btw, just tor
I think its called Tor Service on windows, i dont really know. ask an LLM. but
on Linux and Mac, you can just use brew to install it.
YOU can install Brew from: https://brew.sh/
Once you have brew you can just say:
brew install tor
AFTER THE INSTALLATION IS DONE read the recent terminal logs, there should be something like:
brew services start tor
This SHOULD start tor service in the background, and it should auto start on reboots as well!!
So NOW tor is done.
next steP is going to your bitcoin node settings. JUST FOLLOW: Settings >
Options > Network (tab) And you copy this tab. idk .-.

- Enable Allow incoming connections
- Enable Connect through SOCKS5 proxy
Then restart Knots variant of your Satoshi Client again. Restart your Bitcoin Client.
Enabling OCEAN Lightning Payouts
OCEAN allows lightning payouts via BOLT12 Offers (Invoices).
The easiest way to set it up is using the Coinos custodial lightning wallet.
Unfortunately you can’t use Phoenix Wallet since BOLT12 implementations differ. But try it anyway in case it works. You can also open a lightning channel and use Core Lightning which is included in bitcoin-kit — but we’re trying to keep this guide simple. Coinos also allows you to auto-withdraw your balance to a LNURL, which is useful.
First you need to create a Coinos account — you can log in or register with Nostr. https://coinos.io
Once you have your Coinos account, click on “Receive”. On the Receive page
there’s a button called “More Options” — click that and select “BOLT12”.

Once you’re on that page, open a new tab and go to: https://ocean.xyz/dashboard
You’ll see a search box at the bottom — paste your bitcoin mining address there
and press enter.

This will open your Ocean Dashboard.
Click on the Configuration tab. You’ll see a page like this:

There’s a box with the following fields:
- Amount: “any”
- Description: “OCEAN Payouts for bc1yourbitcoinaddress”
This describes your BOLT12 offer (invoice) — amount is unset (“any”), and the description identifies it as your OCEAN payout offer.
Copy the description from this page, go back to the Coinos tab, click “Add a note” and paste it there.
Then click the Copy button to copy your BOLT12 Offer (Invoice), go back to the OCEAN tab, and paste it into the Lightning BOLT12 Offer field.
Click GENERATE and you’ll see something like this:

It will give you a JSON and ask you to sign it with your miner bitcoin address, then paste the signature back and press Confirm.
We can do this with Sparrow Wallet.
First make sure you have Sparrow Wallet and your miner wallet is added to it. (I’m not gonna cover that part — there are already plenty of guides on setting up Sparrow Wallet.)
Open Sparrow Wallet and go to: Tools > Sign/Verify Message

Fill in the fields like this:
- Address — the bitcoin miner address you used on the OCEAN Dashboard.
- Message — the JSON you copied from under “Sign this with your wallet” on the OCEAN tab.
- Format — select BIP322 (Simple)
Click Sign, paste the result into the “Paste signature here” field on the OCEAN tab, and click Confirm.
Done — lightning payouts are set up.
More info: https://ocean.xyz/docs/lightning#blog-bottom_post
Your lightning payouts sometimes might fail, OCEAN will keep retrying time to time. They pass through eventually. Don’t worry about it.
Using your own custom domain with your localtonet tunnels
Just set it as a “CNAME” in your domain’s DNS settings. How you do this depends on where your domain or nameservers are, so it’s better to ask an LLM for the specifics — but basically, if you point your own domain to the random localtonet subdomain as a CNAME, it works.
If you’re using Cloudflare as your nameserver, make sure to disable the “Proxy” toggle when setting the CNAME in DNS. This isn’t an HTTP server so Cloudflare can’t proxy it, and localtonet is already a tunnel itself.
Keep your DATUM worker name private
Go to your DATUM Gateway’s web interface at port 7152 and navigate to
Config.
You’ll see an option called “Send Miner Usernames To Pool” with several options:
- Override Bitcoin Address — allows hashers/workers connecting to your DATUM
Stratum gateway to override your reward bitcoin address with their own worker
username. This means they can use their own bitcoin address and mine for
themselves through your DATUM Gateway, for example with a username like:
bc1qshz088gg8cd8nl5t0sp3svasvmd243h4sq4fudorbc1qshz088gg8cd8nl5t0sp3svasvmd243h4sq4fud.myworker - Send as worker names — sends the full username as the worker name. People can only mine to your bitcoin address, not their own, through your DATUM Gateway.
- Keep private — hides all worker names from OCEAN and groups them under a single worker named “default”. Nobody can see your worker names publicly; you can only see them from the Clients page of your DATUM Gateway interface.
All you have to do is pick Keep private. Done.
Connecting your Electrum server to your everyday wallet apps
This is simple — similar to how we exposed our DATUM Stratum server using localtonet, you can expose your Electrum server the same way.
In bitcoin-kit there are two Electrum ports:
50001is the plain, unencrypted Electrum port.50002is behind a TLS proxy (encrypted).
You should expose both, since some wallets support one or the other — or both.
Think of it like HTTP vs HTTPS: the non-TLS version is HTTP, the TLS version is HTTPS.
Just like the Stratum endpoint, you can also use a custom domain or subdomain for these.
Write a comment