This repository is a Bitcoin utility library written in Rust, inspired by the exercises in Programming Bitcoin by Jimmy Song. The book teaches how to build a Bitcoin library from the ground up, starting with foundational cryptographic concepts and progressing to Bitcoin-specific features such as transactions, scripts, blocks, and networking.
The exercises in the book are originally implemented in Python. This repository aims to provide an idiomatic Rust implementation, leveraging Rust’s safety and performance features while staying true to the book’s learning objectives. It is currently the most comprehensive Rust port of the library on GitHub.
- Chapter 1: Finite Fields
- Chapter 2: Elliptic Curves
- Chapter 3: Elliptic Curve Cryptography
- Chapter 4: Serialization
- Chapter 5: Transactions
- Chapter 6: Script
- Chapter 7: Transaction Creation and Validation
- Chapter 8: Pay to Script Hash
- Chapter 9: Blocks
- Chapter 10: Networking
- Chapter 11: Simplified Payment Verification
- Chapter 12: Bloom Filters
- Chapter 13: Segwit
- Jimmy Song: For writing Programming Bitcoin, the foundational inspiration for this project.