- Notifications
You must be signed in to change notification settings - Fork4
A Bitcoin library from scratch; in Python and Rust. 📦⛓️
License
NotificationsYou must be signed in to change notification settings
onyb/littlebit
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
LittleBit is an educational library ofBitcoin primitives, with implementations in Python and Rust.
- Help the reader understand how Bitcoinreally works at a fundamental level.
- Focus onreadability in the Python implementation; oncorrectness, andperformance in the Rust implementation.
- Zero (ish) dependency on third-party packages.
DISCLAIMER: This software comessans warranty. DoNOT use this code for anything other than educational purposes. I beg you.
Legend: 🍏 Done 🍋 In Progress 🍅 TODO 🐍 Python 🦀 Rust
Internal links to code inside the repository are indicated
like this
. External links looklike 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.
This is an educational project. You can help out by:
- 🔬 Auditing the codebase, asking questions, reporting bugs (pleasecreate issues).
- 💯 Improving coverage of unit tests.
- λ Adding (clever) type annotations, especially with the Rust part.
- 💬 Adding code comments and explanations.