Search
Close this search box.

What Your Bitcoin Miner Is Doing All Day?

What Your Bitcoin Miner Is Doing All Day?

You plugged in your BitForge Nano. The fan spins up, the OS starts up, and a number starts going up. But what is the thing actually doing? Not in a marketing-brochure sense. In a real, “walk me through the steps” sense.

At DTV Electronics, we get this question constantly, usually from people who just unboxed a BitForge Nano or a Bitaxe Gamma and want to know what’s happening inside the box beyond “it gets hot and sometimes finds Bitcoin.” Fair question. Let’s answer it properly.

👉 Get the Bitforge Nano with BTC or Fiat on the DTV Electronics Store (Worldwide) 🌍

👉 Get the Bitforge Nano with Fiat on Amazon (Worldwide) 🌍

First, the ten-second version

Your miner is guessing. Over and over, thousands of times per second, it’s guessing a number, running that guess through a math function, and checking if the answer meets a rule. Almost every guess fails. Once in a very long while, one succeeds, and that’s a block.

That’s really it. Everything else in this article is just filling in the details of that loop.

The block header: the actual thing being hashed

Your miner doesn’t hash a whole block of transactions. That would be slow and pointless. Instead it hashes something much smaller called a block header, which is basically a summary card for the block. It has six pieces:

  • Version — a flag telling the network which rule set this block follows
  • Previous block hash — a fingerprint of the block that came before, which is what chains blocks together
  • Merkle root — a single fingerprint that represents every transaction in the block, condensed down through repeated hashing
  • Timestamp — roughly when the block was put together
  • Difficulty target — the threshold your hash needs to beat
  • Nonce — a 32-bit number your miner changes on every attempt
       ┌────────────────────────────────────────────────────────┐
       │                 80-BYTE BLOCK HEADER                   │
       │ Version | Prev Hash | Merkle Root | Time | Bits | Nonce│
       └───────────────────────────┬────────────────────────────┘
                                   │ (Points to transactions)
 ┌─────────────────────────────────┴────────────────────────────────┐
 │                      EXTRA BLOCK DATA (Body)                     │
 │  • Size: 1.5 MB                      • Weight: 3.99 MWU          │
 │  • Total Fees: 0.105 BTC             • Miner: Foundry USA        │
 │  • Transactions: (All ~3,000+ txs included in the block)         │
 └──────────────────────────────────────────────────────────────────┘

Your ASIC takes those six fields, glues them together into one string, and runs it through SHA-256 twice. That double hash is the actual “mining” part. Everything before it is just data collection.

Where does all that data come from?

Not from your miner. Your miner has no idea what transactions exist or what the current difficulty is. It gets fed that information by a pool, or by your own node if you’re running one.

If you’re pointing a Bitaxe at a public pool, that pool server builds the block template, splits up the nonce range so miners aren’t duplicating each other’s guesses, and pushes the work down to your device. If you’re solo mining against your own node, your node builds the template locally and hands it straight to your miner without a middleman.

Either way, the communication happens over a protocol called Stratum. It’s lightweight on purpose: JSON-formatted messages over a plain TCP connection, built for a device that needs fresh work delivered every few seconds without any wasted overhead. Your miner subscribes, the source sends work, and every so often that work gets refreshed because a new transaction showed up or the timestamp needs updating.

If you’ve ever run a proxy between your miner and a pool and watched the raw traffic go by, this becomes obvious fast. You’ll see the merkle root shift as the mempool changes, the nonce range assignment change, and periodic re-subscriptions keeping everything in sync. It’s a live, constantly-refreshing conversation, not a one-time handoff.

So what makes a guess “win”?

This is the part people find hardest to picture, so here’s an analogy. Imagine every hash your miner produces as a lottery ticket, except the numbers on the ticket are effectively random and completely unpredictable until you print it. A winning ticket is one where the resulting number, read as a giant integer, comes in under a target value set by the network.

Right now that target is brutally small. A winning hash needs somewhere around 19 to 20 leading zero digits in hexadecimal. Your miner has no way to work backward or shortcut this. It can only print another ticket, check it, and print another. That’s the entire job, done billions of times a second on a modern ASIC.

This is also exactly why solo mining on a single Bitaxe Gamma or BitForge Nano is a long game. Every share your device finds and submits proves it’s doing honest work at a certain rate, but an actual block solution needs a hash that clears the full network difficulty, not just the smaller share difficulty your pool tracks day to day. We keep a running log of confirmed solo blocks found by small hobbyist devices at our solo mining tracker, and the pattern is consistent: it happens, but it’s a matter of persistence and hashrate over time, not luck on any given afternoon.

Why does the target keep changing?

Roughly every two weeks, or every 2016 blocks, the network looks in the mirror and adjusts. If those 2016 blocks came in faster than the ten-minute average, the target tightens and mining gets harder. If they came in slower, it loosens. There’s a cap on how much it can swing in either direction at once, so no single adjustment sends things wildly off course.

The point of this constant recalibration is stability. As more hashrate joins the network globally, blocks don’t start arriving every three minutes instead of ten. The difficulty rises to compensate, and the ten-minute rhythm holds regardless of how much hardware is pointed at the chain. It’s like “the heartbeat” of Bitcoin.

And the reward for actually winning?

Right now, finding a valid block pays 3.125 BTC, plus whatever transaction fees were attached to the block. That reward gets cut in half roughly every four years, a scheduled event known as the halving, and it’ll keep stepping down until the last fraction of a bitcoin is mined sometime around 2140.

As those block subsidies shrink over the coming decades, fees are expected to carry more and more of the weight. For now, on a typical block, the subsidy still dominates, but that balance shifts a little more with each halving.

Putting it all together

Strip away the jargon and here’s the full loop your BitForge Nano or Bitaxe Gamma runs, forever, in the background:

  1. Get a block template and starting nonce range from your pool or node
  2. Assemble the block header from that data
  3. Run it through SHA-256 twice
  4. Check whether the result beats the difficulty target
  5. If not, bump the nonce (or grab fresh data) and go again
  6. If yes, shout about it, because you just found a block

So, there are no secrets. Just a purpose-built chip doing one narrow calculation with extraordinary speed and repeating it until the math finally lines up in your favor. That’s the whole story behind the blinking lights inside your device.

👉 Get the Bitforge Nano with BTC or Fiat on the DTV Electronics Store (Worldwide) 🌍

👉 Get the Bitforge Nano with Fiat on Amazon (Worldwide) 🌍

Leave a Reply

Your email address will not be published. Required fields are marked *

Close

GET 10% OFF

Enter your name and e-mail address to receive 10% off your first order.

We respect your privacy.