Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/onyb/littlebit
A Bitcoin library from scratch; in Python and Rust. 📦⛓️
https://github.com/onyb/littlebit
bitcoin blockchain cryptography python rust
Last synced: 24 days ago
JSON representation
A Bitcoin library from scratch; in Python and Rust. 📦⛓️
- Host: GitHub
- URL: https://github.com/onyb/littlebit
- Owner: onyb
- License: gpl-3.0
- Created: 2019-03-31T21:41:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T03:46:13.000Z (almost 2 years ago)
- Last Synced: 2023-02-27T11:26:55.344Z (over 1 year ago)
- Topics: bitcoin, blockchain, cryptography, python, rust
- Language: Python
- Homepage:
- Size: 167 KB
- Stars: 20
- Watchers: 3
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LittleBit
[![Build Status](https://travis-ci.org/onyb/littlebit.svg?branch=master)](https://travis-ci.org/onyb/littlebit)
[![codecov](https://codecov.io/gh/onyb/littlebit/branch/master/graph/badge.svg)](https://codecov.io/gh/onyb/littlebit)
[![python](https://img.shields.io/badge/Made%20with-Python%203.8-1f425f.svg)](https://www.python.org/)
[![rust](https://img.shields.io/badge/Made%20with-Rust%202018-7C482C.svg)](https://www.rust-lang.org)LittleBit is an educational library of [Bitcoin](https://bitcoin.org/bitcoin.pdf) 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](https://github.com/onyb/littlebit/issues/new)).
- 💯 Improving coverage of unit tests.
- λ Adding (clever) type annotations, especially with the Rust part.
- 💬 Adding code comments and explanations.