v0.1.0 — work in progress

bitrst

Bitcoin. From scratch. In Rust. A full node, wallet, and miner.

$ cargo install bitrst
Linux macOS Windows

Features

Block & chain

SHA256d hashing, Merkle trees, genesis block, chain validation.

Cryptography

secp256k1 ECDSA, Bitcoin addresses, RIPEMD-160, Base58Check.

Wallet

Key generation, UTXO tracking, transaction signing and broadcasting.

Miner

Proof of work, difficulty adjustment, nonce search loop.

P2P node

TCP peer discovery, block gossip, mempool sync with async I/O.

Pure Rust

Zero unsafe code, no GC, memory safe.

Build progress

M1 Block struct, SHA256d, genesis block, hex encoding done
M2 TxInput / TxOutput, coinbase, UTXO set, Merkle tree done
M3 Nonce loop, target bits, difficulty adjustment, timestamps done
M4 Chain validation, orphans, reorg, hardening, 18 integration tests done
M5 Script VM — stack machine, opcodes, P2PKH lock/unlock todo
M6 Wallet — secp256k1 keygen, Base58Check, ECDSA, UTXO tracking todo
M7 P2P — TCP peers, version handshake, block gossip, mempool sync todo
M8 Benchmarks & vectors — BIP fixtures, hash-rate reporting todo

What makes it different

Must have: highest signal
must README demo clip (record terminal or UI) showing a mined block end-to-end todo
must Real Bitcoin / BIP test vectors in automated tests (known inputs → expected hashes) done
must ARCHITECTURE.md: one diagram (ASCII or Mermaid) plus one paragraph per component todo
must Continuous integration: fmt, clippy, tests, cargo audit & deny on push done
Strong depth
strong Script VM carried to real depth (stack machine + P2PKH path), not stubbed out todo
strong Performance benchmarks on hashing and mining loops with published numbers (e.g. hashes/sec) todo
strong Live build stats on this page fed from a small JSON file updated per milestone todo