Skip to content

Latest commit

 

History

History
27 lines (17 loc) · 1.86 KB

README.md

File metadata and controls

27 lines (17 loc) · 1.86 KB

Programming Bitcoin in Rust

This repository is an implementation of the book "Programming Bitcoin: Learn How to Program Bitcoin from Scratch" by Jimmy Song, but in Rust. The original book teaches Bitcoin programming using Python, but this project is an attempt to work through the exercises and examples in Rust.

About the Book

"Programming Bitcoin" is a hands-on guide that dives into Bitcoin technology. It is written by Jimmy Song, one of the leading teachers on Bitcoin and Bitcoin programming. The book demonstrates how to program a Bitcoin library from scratch, teaching the basics such as the math, blocks, network, and transactions behind this popular cryptocurrency and its blockchain payment system.

By the end of the book, learners gain an understanding of how this cryptocurrency works under the hood by coding all the components necessary for a Bitcoin library. It covers creating transactions, getting the necessary data from peers, and sending transactions over the network. This practical knowledge is equally useful for those exploring Bitcoin applications for their companies or those considering a new career path.

The book covers the following topics in detail:

  • Parsing, validating, and creating Bitcoin transactions
  • Using Bitcoin Script, the smart contract language
  • Verifying proof of work to secure a blockchain
  • Programming Bitcoin using Python 3 and Python libraries, including pycoin
  • Simplified payment verification and light wallets
  • Public-key cryptography and cryptographic primitives

Project Motivation

After reading the book, I decided to implement the exercises and concepts in Rust, a language that prioritizes performance, memory safety, and parallelism. This repository contains the Rust implementation of the Bitcoin library that is built throughout the book.

For more information, feel free to explore the source code.

License

MIT License