finds.dev← search

// the find

Jeiwan/blockchain_go

★ 4,378 · Go · updated Jun 2024

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →