Skip to content

Latest commit

 

History

History
130 lines (115 loc) · 3.45 KB

README.md

File metadata and controls

130 lines (115 loc) · 3.45 KB

LittleBit

Build Status codecov python rust

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.