// the find
Jeiwan/blockchain_go
A simplified blockchain implementation in Golang
A from-scratch Bitcoin-style blockchain in Go, written to accompany a seven-part blog series. It implements proof-of-work, UTXO transactions, wallets with Base58 addresses, Merkle trees, and a basic peer-to-peer network. This is a teaching artifact, not a production library — the point is to read the code alongside the articles.
The UTXO model is properly implemented rather than account-based, which is the harder and more instructive path. Transaction inputs and outputs are split into separate files, making the data flow easier to follow than a single monolithic struct. The Merkle tree has tests, which is more than most tutorial repos bother with. The CLI is split per-command, so each operation is isolated and readable.
The flat-file BoltDB persistence means you can't run more than one node on a real network without careful path management — the 'network' is TCP on localhost and breaks immediately in any real multi-machine setup. No signature validation errors are surfaced clearly; a bad transaction just fails silently in places. The codebase hasn't been touched since 2024 and predates modern Go module conventions in some spots. And it stops at part 7 — there's no SPV, no mempool, no fee market, so the gap between this and understanding real Bitcoin is still wide.