Bitcoin from scratch, in Rust.
- Workspace scaffold
- Core, crypto, and miner crates
- SHA-256d hashing with the Bitcoin genesis header test vector
- Block header serialization and hashing
- Full
Blockstruct with transaction list and Merkle root validation - Transaction and UTXO basics
- First proof-of-work nonce search pass
- Difficulty adjustment over 2,016-block periods
- Block timestamp validation (MTP and future-drift limits)
Chainvalidation: connect blocks, UTXO checks, orphans, reorg by cumulative work- M4.5 workspace hardening: spec-aligned
block_work, DoS limits, fork-aware MTP,ChainHandle, events, block store trait - M4.6 chain robustness: reorg snapshot rollback, iterative orphan promotion,
active_hashes, analyticserialized_size - Universal-guide chain consensus integration tests (reorg safety, orphans, difficulty, validation, events)
- M5 Script VM: P2PKH script verification, legacy sighash,
bitrst-scriptstack interpreter - CI for tests, clippy, and dependency security (
cargo audit,cargo deny)
cargo test --all --features test-short-periodWith .cargo/config.toml in the repo, plain cargo test uses the same flags as CI. A full mainnet-interval boundary run (cargo test --all without features) is slower but supported.
Dependency policy and CI behavior: docs/dependency-security.md.
Before pushing dependency changes:
cargo audit
cargo deny check- Block + SHA256d: done
- Transactions + UTXO: done
- Proof of work: done
- Chain validation: done
- Workspace hardening (M4.5): done
- Chain robustness (M4.6): done
- Script VM (M5): done
- Wallet: next