Where do you point your miner for solo mining and why? #asknostr
Discussion
My own stratum server running on my node via DATUM.
And I assume you actually mean lottery mining (you get the full block rewards), rather than solo mining (you make your own block templates). Am I right?
You can lottery mine without solo mining, by pointing your hash toward a pool that generates the block templates for you, but gives you the full reward (minus pool fees) if you find a block. You can also solo mine without lottery mining by using DATUM to generate the block templates, while getting the reward split from nostr:npub1qtvl2em0llpnnllffhat8zltugwwz97x79gfmxfz4qk52n6zpk3qq87dze. Finally, you can BOTH lottery mine and solo mine by using DATUM to generate your block template with the full reward going to your own Bitcoin address, cutting out the use of a pool entirely.
Appreciate the reply man. This is the kind of info I’m looking for. 🤙
And yes, I am referring to lottery mining. Do you know of any good resources where I can learn about all these nuances? Maybe you can write something? I’ve enjoyed your long form notes btw (still need to read the NWC one).
A couple questions came to mind:
1. What’s the difference between a lottery mining pool and a regular pool (e.g. Braiins and OCEAN)?
2. Does difficulty matter in any of these cases? I’ve seen minimum difficulty mentioned in some places so it sounds like some pools might be better for a #bitaxe?
Thank you! I appreciate that encouragement!
Let me see if I can answer the particular questions you had, and then I will think about writing something long-form on the subject.
There are a few different types of pools now. Your bog-standard mining pool, like Braiins, Luxor, or F2Pool, allow individual miners to point their hashrate at the pool's stratum server, so that the pool is determining which transactions are included in the blocks found by any miner in the pool. Additionally, they don't pay the miners in the pool directly from the block rewards. Instead, the block reward goes 100% to the pool, and they credit each miner's account held at the pool based on the proportion of hashrate they are contributing to the effort of finding a block.
Worse than that, though, a handful of these pool operators aren't even constructing the block templates they send to miners on their pool. Instead, they are just using the same block template as AntPool. Meaning that AntPool has an even more outsized influence on which transactions make it into blocks than their pool's hashrate alone suggests.
What is more, most of them use the FPPS payout method, which means they credit their miners accounts on a set schedule, regardless of whether the pool finds a block. This means they need to have plenty of Bitcoin set aside for times when they get unlucky and the pool doesn't find any blocks, but they still need to credit the miners.
There are other mining pools which only credit the miners' accounts when the pool actually finds a block, but those are becoming few and far between these days.
These pools also typically have a minimum amount you need to accumulate in your account (e.g. at least 100k sats) with the pool before they will allow you to withdraw. The exception would be Braiins, since you can auto-withdraw via Lightning even very small amounts. This can create pool lock-in, since miners won't want to switch pools if they still have a ways to go before they earn enough sats to withdraw.
Next we have the lottery pools, like Public Pool or Solo CKPool. They are similar to the other pools previously mentioned in that you point your miner's hashrate at THEIR stratum server, so they are controlling which transactions end up in a block by creating the block template for you. However, if your miner finds the block, you will be the only one on the pool to receive the block reward (minus pool fees). Conversely, if someone else on the pool finds a block, you get nothing.
Then there's OCEAN. When they started, the only option was to point your miner's hashrate at their stratum server, so they 100% dictated which transactions made it into blocks, just like all the other pools, but what differentiated them was that the block reward didn't go to the pool to then be credited to miners' accounts. Instead, miners with enough hashrate were paid DIRECTLY within the block. Those without enough hashrate to justify the creation of a UTXO still had to wait until they accumulated enough to get a payout, though.
Then OCEAN allowed miners to pick between a few different block templates, based on how strictly they wanted to filter out spam from any block they found, or even choose not to filter at all. This in itself had never been done before by a pool that I am aware of.
They also added the option to receive payouts via Lightning. So now the bigger miners could receive on-chain payouts directly from the block reward, and the small fries, like me, could get paid immediately via Lightning, even if it was just 40 sats at a time.
That still wasn't good enough for OCEAN, though. They didn't want to be in control of which transactions make it into a block AT ALL. Not even by offering a few different options to choose from. They wanted each miner to be able to create their own block templates using their own node's mempool data. This was the promise made to us by those developing Stratum V2, but it was taking a while for that protocol to be ready, so OCEAN created DATUM. Now the only thing that OCEAN has to do is send the miners the reward split for them to include in their blocks, and if they find a block, they don't have to send anything to the pool. They just use their node to broadcast the block they found, with the reward split to the other OCEAN miners, to the rest of the network directly.
Finally, DATUM has enabled those who want to lottery mine to cut out the need for connecting to a pool at all. Instead, they just connect to their DATUM server, which gets transaction data from their mempool to include in the block, and sends the block reward directly to their Bitcoin address, should they find a block. Of course, because they are not contributing to the efforts of a pool, and are giving themselves the full reward, they also get no reward at all in the much greater likelihood that they never find a block. But then, that's why it's called lottery mining, right?
There's also a new pool on the scene, finally using Stratum V2 to allow miners to construct their own block templates (I think), called DMND pool. Going to have to do some research to see exactly how this compares to the way DATUM works on OCEAN.
As far as your second question, the difficulty your miner is capable of achieving and its hashrate are not connected to one another. A 20TH machine will find very low difficulty hashes and very high difficulty hashes, and if they find a high enough difficulty hash before any other miner does, they find a block. Same with a 1TH BitAxe. Some pools just won't give you any credit for hashes below a certain difficulty. The more hashrate you have, the more hashes you will find that meet that requirement, but it should still be pretty proportional, so a 20TH machine will find 20x the hashes that meet the minimum difficulty as a 1TH BitAxe.
The only viable pools to use a BitAxe with, though, are going to be ones that pay out via Lightning, or lottery pools, where you only get paid if your BitAxe happens to find a block. That is due to the amount of sats you need to earn to meet minimum withdrawal restrictions for on-chain payouts, though, and nothing to do with the BitAxe's ability to generate hashes with sufficient difficulty.
Now that I have answered both those questions, all of the above could probably just be a long-form note. 😂
Yes! All of that deserves to be a long form. 😂
So let me see if I got this. Solo CKPool is a pool in the sense that all the miners that point to it are using its resources in terms of the stratum server and template creation. But they still get the block reward (minus pool fees).
We refer to that as lottery mining to distinguish it from what solo mining is, for example, with DATUM, where everything is controlled by you. You run the stratum server and create the templates.
The only thing you don't control when using DATUM with OCEAN is the payout split. OCEAN provides that to your DATUM server, and DATUM includes it in the block template. But when you are lottery mining with DATUM and not connecting to OCEAN at all, then you are in control of absolutely every aspect of it. What transactions are in the block, where the reward goes, broadcasting the block to the network if you find one. It's all you, baby!
Gotcha! So what do you connect to if not OCEAN? And are there any pros/cons either way?
If you are lottery mining using DATUM, you aren't connecting to anyone else, just your own stratum server hosted on your node via DATUM. Your node, of course, is connected to its peers on the Bitcoin network, and they gossip about what transactions are waiting to be added to blocks. That's how your node knows what transactions are waiting, even if they were submitted by someone half the world away.
Now, the downside of this, as with any lottery mining, is that you don't get anything if your Bitaxe never finds a block. I am not someone who can crunch the numbers on that likelihood, but I seem to remember someone saying that if all you have is a BitAxe, you will find a block on average once every 30,000 years at the current network difficulty, and you are just praying that you will get exceptionally lucky and have it happen in the portion of that 30,000 years that overlaps with your lifespan. 😂
Another way of saying it is, if you have 30,000 BitAxes, then your chances are pretty good that one of them will find a block each year. You might go a few years without any of them finding a block, while you find two or three blocks another year, but it will average out to about 1 block a year.
When you are connecting to OCEAN through DATUM, you are no longer lottery mining. The downside of this is, if you find a block, you have to share the rewards with all the other miners in the pool. But the upside is, you will get rewards for your small contribution to trying to find a block, even when it is someone else in the pool who found it. And because OCEAN has Lightning payouts, you can get paid directly to your Lightning wallet via a BOLT-12 invoice each and every time the pool finds a block, with no need to wait to build up enough sats owed to you for an on-chain UTXO.
So it's the difference between having a chance at a MASSIVE payout, that probably will never come, vs getting exceptionally small payouts virtually every day.
Either way, though, if you are a noderunner already, and you want to do some home-mining, I don't see any good reason not to use DATUM and either lottery mine on your own, or connect to OCEAN for pooled mining.
Ah I see. I thought anything DATUM meant solo mining. But DATUM *alone* is solo mining, and DATUM + OCEAN is pool mining (similar to Braiins) except I get to create my own block templates. Is that right?
Yes. It depends on how you use "solo"
Solo really means making your own blocks which is what DATUM does even if you're pooling.
What is the incentive for making my own block? Is I am earning small rewards daily, does it matter that I have the ability to make my own block?
I am going to flip that question on its head a bit. What is the incentive NOT to make your own blocks? If you already run a node that has its own mempool, why would you want to be beholden to someone else dictating what your miner is hashing? What do you get out of that that you would not get if you created your own block templates?
In my mind, the only reason not to create your own block templates is if you aren't running a node. And then question is, why the heck aren't you running a node?
And then, yes. OCEAN gives a discount on the pool fee for those who use DATUM to create their own templates, and you pay zero pool fee whatsoever if you are lottery mining using DATUM. So the incentive is you get paid more in either scenario. Assuming you are fortunate enough to get paid at all in the lottery mining option.
It sounds like with DATUM there is no excuse to not make your own blocks now or rely on someone else to. And I agree, I feel mining and node running go hand-in-hand at this point. Obviously the lotto mining is a tough sell, that's where OCEAN comes in. It's all coming together. In the future it may be common for Nodes and miners to come packaged together. And then I'd love to see a way to plug in renewable energy tech to these devices. A bitaxe branded solar panel or hydro/wind turbine perhaps. 🤔 Maybe I'm thinking too far ahead
You're not thinking too far ahead: https://www.solosatoshi.com/product/solarbit/
There are currently only three reasons not to generate block templates yourself:
1. You don't run your own node and don't want to start.
2. You don't like OCEAN for some reason, such as preferring FPPS payouts rather than only getting paid when the pool finds a block.
3. You don't want to run Knots as your Bitcoin node implementation.
Woah, that is cool. I had not seen this yet. Man things are moving fast.
Knots makes sense to me and I had never really considered that seeing as Bitcoin core was the more common option.. but the deeper I dig the more I understand why. Competition is good, having choices is important, values and incentives need to align as we all hunt for the truth.
This is what makes things confusing, right?
"Solo" really only refers to who is making the block templates, while "lottery" refers to only the miner who found the block receiving the payouts.
These are also the two main services a pool CAN provide to you. The pool can provide you with block templates to hash, and it can provide you with more regular payouts than if you were mining without the pool.
Standard pools provide both of those services: Block templates to hash and regular payouts whenever anyone in the pool finds a block.
Lottery pools only provide the first of those services: Block templates to hash. They don't provide regular payouts. You only get paid if your miner finds a block.
Until OCEAN, those were the only two structures. No one had yet figured out a way for a pool to provide regular payouts whenever anyone in the pool found a block without also providing block templates for those within the pool to hash. So, solo miners were all, by default, lottery miners, because they had no pool they could connect to and still be able to create their own block templates.
This led to confusion with people equating solo mining with lottery mining, when it really only refers to creating your own block templates.
But now, with OCEAN, you actually CAN create your own block templates while being connected to a pool only for the sake of regular payouts. So you ARE solo mining when you use DATUM, regardless of whether you are connecting to OCEAN for block reward splits or lottery mining without any pool at all.
And for the sake of full disclosure, I go the route of connecting to OCEAN for small payouts each time the pool finds a block. Maybe, if my BitAxe actually finds a block this way I will be disappointed that I wasn't lottery mining, but it's still neat to see non-KYC sats rolling into my Lightning wallet on a regular basis, and I am learning a ton about how all this works in the process.
nostr:nprofile1qqs2zqnq524z7zfdsh3vpwpwjh4vt7xxp6sec68y3xr3ndvve23ru0spp4mhxue69uhkummn9ekx7mqpr3mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmqmh0m7r for a bit of reference on the chance of mining a block. I have 180TH online and nostr:nprofile1qqsq9k04vahllseell55m74n3047y88pzlr0z5yany32st29fapqmgsppemhxue69uhkummn9ekx7mp0qy08wumn8ghj7mn0wd68yttsw43zuam9d3kx7unyv4ezumn9wshsm60rnh is telling me to check back in 76 years.

Wow! Hopefully you get lucky. 😅🤞
Working through the process to get a lightning node set up on my start9 server. Trying to use a bitaxe, ocean, and lightning payouts. Still in process
