I wanted to understand solo mining by actually doing it rather than only looking at probability calculators. So I ended up building two very different CPU mining experiments. The first was my Bitcoin Solo Lottery Miner. It is a small Windows application that connects to a Bitcoin solo pool, builds mining work, searches nonces with the CPU, submits shares, and shows everything in a live log. I even managed to get accepted shares from the pool. That was exciting for about five minutes. Then reality returned. My laptop produces only a tiny amount of SHA256 work compared with the Bitcoin network. At that scale, the expected time to find a Bitcoin block is so absurdly long that the number almost stops being useful. But this is where solo mining gets interesting. Expected time is not a countdown. If the expected time were trillions of years, that does not mean the miner must run for trillions of years before it is allowed to find a block. Every valid hash attempt is another lottery ticket. The first hash could theoretically find a block. Or the machine could run for its entire useful life and never find one. I wanted to see that same lottery mechanism somewhere where I could actually observe the other outcome.
So I built another CPU miner.
This time I implemented a native Power2b hashing engine and connected it to the MicroBitcoin network in solo mode. The machine was still nothing special.
Intel i5 11400H
6 CPU threads
Roughly 500 to 600 H/s
At first I only cared about one thing.
Were the shares valid?
The pool started accepting them. Then the miner found a solo block. Then another. I kept it running. Eventually the counter reached: Solo blocks found: 6 The monetary value was tiny. That was never the interesting part. What interested me was seeing exactly the same probabilistic idea produce two completely different experiences. On Bitcoin, my laptop can do valid work while having an almost ridiculous probability of ever finding a block. On a much smaller network, a CPU can actually live through the whole process repeatedly.
Valid work.
Accepted share.
Enough luck.
Block.
That experiment changed the way I think about the phrase “expected block time.” It is useful mathematics, but it can sound misleading when you experience solo mining directly. There is no queue. There is no progress bar slowly approaching a block. Your previous hashes do not make the next hash luckier. You are simply making independent attempts against a target.
Most lose.
One may win.
And that is why I still like the term lottery mining.
My Bitcoin miner may never find a block. But every time it computes another valid hash, the probability is still not zero. That tiny difference between impossible and extremely unlikely is what makes the experiment fun for me.
I’m still continuing my mining experiments and working on different mining related projects. For me, the main goal is not simply to mine coins. It is to understand how the technology actually works by building, testing, breaking, fixing, and running things myself. Different algorithms, different networks, solo mining, pools, Stratum, hashing engines, shares, block discovery, all of these experiments teach me something new about how mining really works beyond the theory. I’m curious about your side too.
Have you ever experimented with mining yourself, whether with CPUs, ASICs, solo mining, pools, or your own software? I’d be interested to hear what you tried and what you learned from it.
Finding a block also gave me an idea for another application. That project deserves a separate article of its own, because I do not want to write about it before I have actually built and tested it. If I do it, I want the article to include the real process behind it: what worked, what failed, the mistakes I made, the things I misunderstood, and what I learned while trying to turn the idea into something that actually works. For me, that is the most interesting part of these experiments. The finished application is only the final result. The real story is everything that happens while building it.
If you enjoyed this article, do not forget to follow me on Publish0x and check out my other posts as well.
I regularly share my experiments, projects, mistakes, and what I learn along the way about Bitcoin, mining, Nostr, Lightning, and other technologies.
Thanks for reading and being part of the journey. ⚡