It's been over a year (#911262) since I started hashing for heat. Some mentioned they hooked up their miner to heat their office, but I am none so bold. Then I thought, isn't that a nice little stack of sats sitting with Ocean. I'd love to get paid out in Lightning.
Here is the journey I undertook thereafter.
I pool my hash with Ocean, because I like their team's vision for Bitcoin mining decentralization
Getting PaidGetting Paid
With only circa 8 TH/s and only mining for heat, I won't likely hit the payout threshold for a few years, and I am not patient. I have been meaning to address this, but I've been giving myself a bit of a break since the initial harships that came in setting up my node on an old office PC. It is one of the great things about bitcoin/open source softwarre, I find, is oyu don't necessarily need all the newest fanciest gadgets, but what you don't pay for in dollars/sats, you definitely pay for in time and energy. I have been learning a lot, to say the least.
I finally decided I'd bear down and get a Core Lightning node going, something I've been meaning to do so for a while. I want to get paid for my hash! Somebody mentioned somewhere I can run it alongside my LND node on the same machine. So, here's trying.
As many already know, Ocean requires Bolt12 offers [1]. They say these can be done in Albyhub, but not if you are using LND as a backend. It requires an implementation that accepts bolt 12 offers. Core Lightning does.
Illustration from Ocean's Bolt 12 synopsis
So I had a goal: run Core Lightning, get inbound liquidity from my LND node, make bolt 12 offer, and configure my miner to receive instant payouts. Didn't seem too bad.
402 Payment Required to the Rescue402 Payment Required to the Rescue
If you're like me, then this kind of thing is not necessarily a walk in the park. I banged my head on the wall for a few hours trying the installation walk-thru to build from source. The docker install may have been less of a headache, but I didn't try. Then I found 402 Payment Required's vid (#32342 <-- go zap this post) which was an absolute absolute life saver.
I followed this guide and in about an hour I had it up an running. There was an issue with the $ poetry run make. There may be a bug for the latest Core Lightning version that doesn't like this build. However, the one provided by the core lightning documentation ended up working:
uv sync --all-extras --all-groups --frozen
./configure
RUST_PROFILE=release uv run make
sudo RUST_PROFILE=release make install
Also, the video mentioned configuring Core with some such --enable-experimental-features flag, but I didn't need to do this to receive bolt 12 offers.
After that, I connected to my LND node as a peer and then just opened a channel so I had some inbound. And just like that, my node was ready.
Making a BOLT12 OfferMaking a BOLT12 Offer
This threw me for another loop, but it ended up being easier than I expected.
Ocean's guide refers you to check your specific implementation for receiving bolt 12 offers. I searched, and Core lightning didn't seem to have a section for Bolt 12 offers in their documentations.
Except that they do, but it is sort of hidden and the command is not called "bolt 12 offer," or anything with "bolt 12" in it. You just use the offer command with the specification provided on your Ocean configuration page.
I followed theses steps:
- copy Ocean Payout description ("Ocean Payouts for <redacted BTC address>" -- this is on the Configure tab of your worker's stats page.
- use
$ lightning-cli offer any “Ocean Payouts for <redacted BTC address>" - get lno.... bolt12 string
- copy it to your Ocean configuration page and click “generate”
- copy the output it generated, open the wallet you generated the BTC address associated with your worker, and sign the message with this address (this is pretty easy: in Sparrow wallet, next to the address, there is a “sign” button, click this and paste the message ocean gave, click sign and then receive the signature.)
- copy and paste the signature generated from your bitcoin wallet into the Ocean configuration page.
Presto! Now just wait for Ocean to find a block and you should be getting your pay-out over lightning.
I hope my experiences will help to guide you if you undertake the same journey. Let mining stay decentralised!
Great writeup. I struggled like hell to get Ocean payouts via my CLN, but I can tell you're more technically savvy than me. Were you able to actually use the same address you used previously for on chain payouts, or did you start fresh with a different on chain address?
I don't want to give the impression I didn't struggle, but I did synthesize my process for clarity. Nothing about it was intuitive to me.
The same address worked for me. Was this not your experience?
I refuse to accept this accolade. "Fucking obsessively and stubbornly persistent" is more accurate. :)
I don't think I had started mining with Ocean yet, so I didn't try, but if I recall some people had trouble with that. My memory is foggy.
P.S. I can relate to stubbornly persistent
It might be a common thing among bitcoiners. Just a hunch. :)
Ocean could be a good LND terminology but needs LN programming tricks not every one could do.
I believe you can receive bolt 12 offers via coinos as well, but this is a custodian. In most things bitcoin adjacent, there is a trade-off in sovereignty when you go for convenience.
Yes you an - I am getting my ocean payouts via coinos.
Had to create a sparrow wallet to get the offer configured.
It was a bit tricky to set up but it works so far.