Skip to content
/ littlebit Public

A Bitcoin library from scratch; in Python and Rust. πŸ“¦β›“οΈ

License

Notifications You must be signed in to change notification settings

onyb/littlebit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

About

A Bitcoin library from scratch; in Python and Rust. πŸ“¦β›“οΈ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published