LittleBit
LittleBit is an educational library of Bitcoin primitives, with implementations in Python and Rust.
Objectives:
- Help the reader understand how Bitcoin really works at a fundamental level.
- Focus on readability in the Python implementation; on correctness, and performance in the Rust implementation.
- Zero (ish) dependency on third-party packages.
DISCLAIMER: This software comes sans warranty. Do NOT use this code for anything other than educational purposes. I beg you.
Progress report
Legend:
🍏 Done🍋 In Progress🍅 TODO🐍 Python🦀 Rust
Internal links to code inside the repository are indicated
like this
. External links look like this.
Component | Status |
---|---|
Elliptic Curve Cryptography (ECC) | |
Finite Field
|
|
Elliptic Curve |
|
secp256k1 |
|
Signatures |
|
Serialization | |
SEC Format |
|
DER Format |
|
Base58 |
|
Bitcoin Address Format |
|
Wallet Import Format (WIF) |
|
Transactions |
Note: This table is not complete.
Contributing
This is an educational project. You can help out by:
🔬 Auditing the codebase, asking questions, reporting bugs (please create issues).💯 Improving coverage of unit tests.- λ Adding (clever) type annotations, especially with the Rust part.
💬 Adding code comments and explanations.