Skip to content

Revision · Hands-On

This part turned concepts into commands. The whole ethos is don’t trust, verify — and here you actually did the verifying, on safe test networks, by running a node and tracing real data yourself.

  • Running your own node — installing and configuring Bitcoin Core (RPC server, txindex, dbcache, the pruning option) makes you a sovereign verifier who checks every rule instead of trusting someone else’s answer.
  • Talking to your node with bitcoin-cli — the JSON-RPC interface lets you walk from height to block hash to block, decode raw transactions, query the UTXO set with gettxout, and peek at the mempool.
  • Build & decode a raw transactioncreaterawtransaction, signrawtransactionwithwallet, decoderawtransaction, and sendrawtransaction map every field back to the transaction anatomy, and the fee is just the gap you deliberately leave between inputs and outputs.
  • Verify a Merkle proof yourself — produce a proof with gettxoutproof, then recompute the root by hand with double-SHA-256 to confirm a transaction is in a block the way SPV clients do.
  • Test networks — regtest is your private universe (mine blocks on demand), signet is a calm realistic public chain, and testnet is the messy public rehearsal; always learn here before mainnet, where mistakes are irreversible.
  • Reading the live chain — inspect real blocks and transactions, spot the coinbase as the first txid, check whether an output is still spendable, and catch a block explorer lying by verifying its claims against your own node’s merkleroot.

Running a node is the concrete answer to the book’s recurring question: because each participant can independently check every rule, nobody has to trust anyone — they each hold the whole truth and reject anything that breaks it. Having verified Bitcoin from the outside, the next part builds a working blockchain from the inside, in Rust.