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