Alerte : Maintenance en cours. Certains ouvrages sont temporairement indisponibles et reviendront bientôt.

Programming Bitcoin: Learn How to Program Bitcoin from Scratch

Book Details
Title Programming Bitcoin: Learn How to Program Bitcoin from Scratch
Author Jimmy Song
Publisher O'Reilly Media
Year 2019
Edition First Edition
Language English
Pages 322 pages
ISBN 9781492031499
Genre / Domaine Computers, Technology, Cryptocurrency
Series Unknown
Size 12.72 MB
Extension PDF

Summary

Programming Bitcoin: Learn How to Program Bitcoin from Scratch by Jimmy Song is a hands-on technical guide that takes a fundamentally different approach from most cryptocurrency books. Published by O'Reilly Media in 2019, this book assumes you are a Python programmer who wants to understand Bitcoin not through abstract explanations but by actually building the software that makes it work [citation:1][citation:5]. Jimmy Song, a Bitcoin Core contributor and former VP of Engineering at Armory, designed the book as a progressive coding course where each chapter adds another component to a working Bitcoin library [citation:1][citation:20]. The result is a comprehensive education in both Bitcoin's architecture and the practical skills needed to interact with its network programmatically.

The book is structured around fourteen chapters that build on each other in a carefully sequenced progression. It begins with the mathematical foundations, covering finite fields and elliptic curves before moving into elliptic curve cryptography and serialization [citation:8][citation:19]. From there, readers tackle transactions, Script (Bitcoin's smart contract language), transaction creation and validation, and Pay-to-Script Hash [citation:1][citation:13]. The later chapters address blocks, networking, Simplified Payment Verification, Bloom filters, and SegWit, before concluding with advanced topics and a complete solutions appendix [citation:19]. This deliberate ordering ensures that readers understand the cryptographic and mathematical underpinnings before encountering the higher-level protocols built on top of them, mirroring how Bitcoin itself is constructed layer by layer.

What distinguishes this book is its insistence on active learning. Every chapter includes exercises that require readers to write code, and the solutions appendix provides complete implementations for verification [citation:1][citation:12]. The book teaches readers to parse, validate, and create Bitcoin transactions programmatically, work with public-key cryptography and cryptographic primitives, and understand how proof-of-work secures the blockchain [citation:1][citation:5]. By the end, readers have not merely read about Bitcoin; they have built a functioning library capable of interacting with the Bitcoin network. This approach makes the book particularly valuable for developers who learn best by doing rather than by reading theoretical descriptions.

The target audience is explicitly Python programmers and software developers, with beginner to intermediate experience assumed [citation:5]. The book does not require prior knowledge of Bitcoin, cryptography, or blockchain technology, making it accessible to developers entering the field for the first time. However, the mathematical content—particularly finite fields and elliptic curves—demands comfort with abstract reasoning and some mathematical maturity. Readers who complete the book will be equipped to explore Bitcoin applications for their companies, pursue careers in blockchain development, or contribute to open-source Bitcoin projects. The practical orientation ensures that the skills acquired transfer directly to real-world development scenarios.

Programming Bitcoin has earned recognition as one of the most rigorous and effective introductions to Bitcoin development available. A foreword by Kan Liu praises Song's "outstanding skills and insights" in designing a learning path that leads readers from the underlying mathematics to the latest extensions and forks [citation:15]. The book's reputation rests on its uncompromising depth and its refusal to oversimplify the technical realities of Bitcoin. For programmers who want to understand cryptocurrency at the implementation level rather than merely use it, this book provides an education that few other resources can match.

Key Features

  • The book takes a hands-on, code-first approach that teaches Bitcoin by having readers build a working library from scratch rather than merely explaining concepts theoretically.
  • It assumes Python programming knowledge and guides readers through implementing cryptographic primitives, transaction parsing, and network communication in a language they already understand.
  • The curriculum is organized into fourteen progressive chapters that build on each other, from finite fields and elliptic curves through SegWit and advanced topics.
  • Every chapter includes coding exercises, and a comprehensive solutions appendix provides complete implementations for readers to verify their work.
  • The book covers essential Bitcoin components including transaction creation and validation, Script programming, and Pay-to-Script Hash mechanisms.
  • Readers learn to work with public-key cryptography, elliptic curve cryptography, and serialization, developing a deep understanding of Bitcoin's security foundations.
  • The networking chapters teach how to communicate with Bitcoin peers, retrieve data from the network, and broadcast transactions programmatically.
  • Simplified Payment Verification and Bloom filters are explained in detail, providing insight into how light wallets function without downloading the entire blockchain.
  • SegWit (Segregated Witness) receives dedicated coverage, ensuring readers understand this critical protocol upgrade and its implications for transaction structure.
  • The author, Jimmy Song, is a Bitcoin Core contributor and former VP of Engineering at Armory with over twenty years of programming experience [citation:1][citation:20].
  • The book is published by O'Reilly Media, a leading technical publisher known for rigorous, practitioner-focused programming guides.
  • Proof-of-work consensus and blockchain security mechanisms are explained through implementation rather than abstraction, making the concepts concrete and memorable.
  • The book has been translated into Chinese and other languages, reflecting its international recognition as a standard reference for Bitcoin development [citation:10].

About the Author

Jimmy Song is a Bitcoin developer, educator, and entrepreneur with over twenty years of programming experience, the last several of which have been devoted to Bitcoin [citation:4][citation:9]. He is a contributor to Bitcoin Core, the reference implementation of the Bitcoin protocol, and has contributed to numerous other Bitcoin projects [citation:1][citation:20]. Before his involvement in Bitcoin, Song served as Vice President of Engineering at Armory, a Bitcoin wallet company, where he gained deep experience in the practical challenges of cryptocurrency software [citation:1][citation:20]. He has been a lecturer at the University of Texas and has taught blockchain engineering to developers for over three years, developing the pedagogical approach that informs Programming Bitcoin.

Beyond his technical contributions, Song is a prolific writer and communicator in the Bitcoin space. He edits bitcointechtalk.com, maintains a popular blog at medium.com, and writes a weekly newsletter called Bitcoin Tech Talk [citation:1][citation:4]. He has served as an expert witness in legal cases involving Bitcoin and acts as an advisor to multiple companies in the cryptocurrency industry [citation:4]. His other books include The Little Bitcoin Book, Thank God for Bitcoin, and Bitcoin and the American Dream, reflecting his broader engagement with Bitcoin's economic and philosophical dimensions alongside its technical foundations.

Related Books

  • Mastering Bitcoin: Programming the Open Blockchain — Andreas M. Antonopoulos
  • Mastering Ethereum: Building Smart Contracts and DApps — Andreas M. Antonopoulos and Gavin Wood
  • Bitcoin and Cryptocurrency Technologies — Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, and Steven Goldfeder
  • The Bitcoin Standard: The Decentralized Alternative to Central Banking — Saifedean Ammous
  • Grokking Bitcoin — Kalle Rosenbaum
  • Bitcoin Programming: A Comprehensive Guide to Building Bitcoin Applications — Jimmy Song
  • Blockchain Basics: A Non-Technical Introduction in 25 Steps — Daniel Drescher

Ads

FAQ

Q : What programming background do I need before reading Programming Bitcoin?

R : The book assumes you are already comfortable programming in Python, as all code examples and exercises use Python 3 [citation:5]. You should understand basic Python syntax, data structures, and object-oriented programming concepts before starting. No prior knowledge of Bitcoin, cryptography, or blockchain technology is required, as the book builds these concepts from the ground up. However, the mathematical content—particularly finite fields and elliptic curves—does demand some comfort with abstract reasoning. Jimmy Song designed the book for beginner to intermediate programmers who want to understand Bitcoin at the implementation level.

Q : How does this book differ from other Bitcoin books like Mastering Bitcoin?

R : While Mastering Bitcoin by Andreas Antonopoulos provides a comprehensive conceptual overview of Bitcoin's architecture, Programming Bitcoin takes a distinctly hands-on, code-first approach [citation:1]. Song's book teaches through implementation, requiring readers to write code for every component they learn about, from finite fields to SegWit transactions. This pedagogical difference means Programming Bitcoin is less a reference book and more a structured course that develops practical skills incrementally. Readers who want to understand Bitcoin's design philosophy might prefer Antonopoulos, while those who want to build with Bitcoin will find Song's approach more directly applicable.

Q : Is Programming Bitcoin suitable for self-study, or is it designed for classroom use?

R : The book works effectively for both self-study and classroom instruction. Its chapter-by-chapter progression with exercises and a solutions appendix makes it well-suited for independent learners who want to work through the material at their own pace [citation:1][citation:15]. The foreword notes that Jimmy Song designed the learning path through close collaboration with students, suggesting the material has been tested in educational settings [citation:15]. For classroom use, instructors can assign chapters as weekly units, with the coding exercises serving as homework. The book's structure and clarity make it adaptable to various learning contexts.

Q : What version of Bitcoin does this book cover?

R : Programming Bitcoin covers Bitcoin as of its 2019 publication, including SegWit (Segregated Witness), which was activated on the Bitcoin network in 2017 [citation:1][citation:19]. The book includes dedicated chapters on SegWit and advanced topics, ensuring readers understand the most significant protocol upgrade to Bitcoin's transaction format. While Bitcoin continues to evolve, the fundamental cryptographic and network principles taught in the book remain foundational. Readers should be aware that some implementation details may have changed since publication, and consulting current Bitcoin Core documentation is advisable for the most up-to-date specifications.

Q : What will I be able to build after completing this book?

R : By working through the book, you will build a functional Bitcoin library in Python capable of parsing, validating, and creating Bitcoin transactions [citation:1]. You will understand how to work with Script, communicate with Bitcoin network peers, implement Simplified Payment Verification, and handle SegWit transactions. The skills acquired transfer directly to building Bitcoin applications, whether for your company or personal projects. You will also be equipped to contribute to open-source Bitcoin projects, as the book teaches the same foundations that underpin Bitcoin Core. The exercises ensure you have working code, not just theoretical knowledge.

Q : Does the book cover altcoins or other cryptocurrencies?

R : Programming Bitcoin focuses exclusively on Bitcoin, making no attempt to cover altcoins or other blockchain platforms [citation:1]. This singular focus allows the book to achieve considerable depth without sacrificing rigor for breadth. Readers interested in Ethereum development would be better served by Mastering Ethereum or similar resources. However, the cryptographic and networking foundations taught in this book are transferable to understanding other cryptocurrency systems, even if their specific implementations differ. The principles of elliptic curve cryptography, proof-of-work consensus, and peer-to-peer networking apply broadly across blockchain technologies.

Q : What is the significance of the exercises and solutions appendix?

R : The exercises are central to the book's pedagogical approach, transforming it from a reading experience into an active coding course [citation:1]. Each chapter presents challenges that require readers to implement the concepts just explained, reinforcing learning through practice. The solutions appendix provides complete implementations for all exercises, allowing readers to verify their work and learn from any mistakes [citation:12]. This structure mirrors how Bitcoin itself is learned in practice: by building, testing, and iterating. Readers who skip the exercises will miss the book's core value proposition, which is developing practical implementation skills rather than just conceptual understanding.

Q : Who is Jimmy Song and why should I trust his expertise?

R : Jimmy Song is a Bitcoin Core contributor with over twenty years of programming experience, including several years specifically focused on Bitcoin [citation:1][citation:4]. He served as Vice President of Engineering at Armory, a Bitcoin wallet company, giving him practical experience with the challenges of building production Bitcoin software [citation:20]. He has taught blockchain engineering to developers for over three years and is a well-known figure in the Bitcoin community through his blog, newsletter, and podcast. His combination of deep technical knowledge, teaching experience, and industry credibility makes him exceptionally qualified to write this book.

Enregistrer un commentaire

Thanks for comment

Page précédente Accueil Page suivante

Post Share Buttons

Les plus populaires Voir la suite

Biblio-Sciences