Jump to ratings and reviews
Rate this book

Programming Bitcoin: Learn How to Program Bitcoin from Scratch

Rate this book
Dive into Bitcoin technology with this hands-on guide from one of the leading teachers on Bitcoin and Bitcoin programming. Author Jimmy Song shows Python programmers and developers how to program a Bitcoin library from scratch. You’ll learn how to work with the basics, including the math, blocks, network, and transactions behind this popular cryptocurrency and its blockchain payment system. By the end of the book, you'll understand how this cryptocurrency works under the hood by coding all the components necessary for a Bitcoin library. Learn how to create transactions, get the data you need from peers, and send transactions over the network. Whether you’re exploring Bitcoin applications for your company or considering a new career path, this practical book will get you started.

319 pages, Paperback

Published March 26, 2019

Loading interface...
Loading interface...

About the author

Jimmy Song

12 books39 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
55 (64%)
4 stars
23 (27%)
3 stars
7 (8%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 - 14 of 14 reviews
1 review1 follower
February 13, 2019
Learning about how Bitcoin “works” is daunting. Finding material that goes beyond an inch deep is even more difficult. Jimmy has captured the material he teaches in his Programming Blockchain seminar, into a comprehensive exploration of Bitcoin programming fundamentals. He makes each topic very approachable by using Python and Jupyter notebooks as well as providing all of the tests to the underlying code. The Table of Contents alone is invaluable as a syllabus or guide to traversing the diverse concepts necessary to understanding Bitcoin. The book covers all bases including the mathematical principles of Elliptic curves, the intricacies of transactions, blocks, Bitcoin’s script, and networking as well as often overlooked subjects like bloom filters and segwit. I highly recommend this book for those programmers who want an understanding of this fascinating protocol.
1 review
February 13, 2019
Jimmy's book is currently the best technical resource available to learn how to implement bitcoin ground up. Nothing comes close. Finally, computer science courses have a text book they can use to teach the fundamentals of bitcoin programming, from the math to cryptography, transaction serialization, creation & validation, bitcoin script, blocks, proof of work, merkle trees, spv, segwit, networking and bloom filters and not just blockchain!
1 review7 followers
February 13, 2019
Highly recommend if you want to dive deeper into bitcoin from a technical perspective.

As a university graduate, this is a perfect book for someone who wants to dive deeper into bitcoin. Goes mathematical perspective all the way from ECC, groups all the way through creating custom complex transactions exercises. In contrast with Andrea's book, this one is more technical and addresses things at a code level.
Profile Image for Adrian.
142 reviews22 followers
December 8, 2022
For a long time i was damn convinced that i was missing the next big thing not jumping into the bitcoin programming job market.
Reading this proved me i didn't actually miss anything and i was right to see all this as some hyper advertised meme

The book does a great job in the first 4 chapters laying the mathematical foundation for understanding cryptography more specifically Finite Fields , and Elliptic Curves. However that being said later on you realise you won't reimplement the wheel and you can be totally ignorant on how the specific algorhitms are performing hashing.

So having said that, you can see a smart contract as a assembler language , neaning that operations and variables come in as a stack which is consumed sequentially , or as a matrioska doll.

Ex:
22
33
Op_equal
hash

Put 22 on the stack , put 33 on the stack
Perform equal on these 2 values
Then hash the result

You are at all times deoendant on the blockchain and for whatever you need to perform , you make exterrnal calls to some Blockchain node to verify coins , accounts, address to send coins etc...basically everything everyone has ever done has to be stored for perpetuity somewhere...which violates the Steady State principle , the transactions have no god damn lifecycle...imagine the energy and stroage cost of this never ending , continously expanding...totally unfeasible.

Still this is in the area of Proof of Work , for your smart cotnract to do the stuff you program it to do, your Inputs>Outputs, so that there is some bitcoin fee left for the miners , the ones that lend their processing power.

Nowadays everyone jumped the Proof of Stake bandwagon when talking about crypto , meaning rhat we dont deal with blockchain anymore , with hashing and everything mathematically complex but with some dudes launching a virtual currency and hold the majority of the coins and sucking up most of the revenue generated , like the stakeholders in a typical corporation.

A filthy domain that i am glad i have not touched in my careet !

The first introductory chapters were interesting , mathematically-wise but after getting deeper you realise you could skip them and still be able to code smart contracts.

Then the mid book is a bonanza of code samples containing different methods of hashing and representing different operations when dealing with contracts (serialization, networking , parsing , etc)... The python code samples were quite cumbersome.

I for one felt the book needed more day to day examples on how to code the contracts , uniting both the business logic part with the interactions with the blockchain. However since every blockchain is different you would need to fiddle with each of them and learn their particularities... Similar to what frontend devs do whenever a [new_shit].js comes on the horizon.
This entire review has been hidden because of spoilers.
217 reviews5 followers
February 25, 2022
Kryptowalutami zainteresowałem się w zeszłym roku, chociaż nawet Taco Hemingway śpiewał o nich 3 lata temu, więc zaznaczam, że będzie to opinia z perspektywy laika. Po prostu jestem poniekąd związany z sektorem finansowym, o którym wiele złego można powiedzieć, ale jednak jest to sektor monitorowany i zarządzany przez umowy międzypaństwowe. Może stąd moja awersja albo przynajmniej uprzedzenie. W globalnym systemie finansowym zawsze można wprowadzić regulacje, gdy jakaś część systemu nie funkcjonuje poprawnie (upadek Lehman Brothers, kryzys subprime), odciąć kogoś od części systemu (SWIFT), przestać obsługiwać transakcje z bankiem X.

Przeciewieństwem tego sektora są zdecentrolizowane finanse oparte o łańcuchy kryptowalutow (etherum). Gdy się o tym wszystkim czyta po raz pierwszy ma się wrażenie, że to może być panaceum na problemy globalnych rynków finansowych. W świecie kryptowalut już nikt, przez kaprys polityków, nie zablokuje nikomu środków finansowych. Nie będzie tzw “dodruku” pieniędzy (który dodrukiem nie jest ale to dłuższa opowieść).

W dzień taki jak dzisiaj, w którym rosyjscy oligarchowie anonimowo mogą po prostu kupić kryptowaluty i obronić się przed spadkami cen swoich aktywów, nie wiem czy czasem minusy ważą więcej niż plusy. Nie jestem pewien czy ta technologia może przynieść więcej dobrego niż szkód. Tym bardziej, że można za nią płacić za organy, broń, niewolników pozostając anonimowym. Na pewno nie da się już jej zatrzymać, dlatego sięgnąłem po tę lekturę.

Sama książka jest dobrze napisana i jednocześnie bardzo trudna (przynajmniej dla mnie). Pierwsze rozdziały podobały mi się najbardziej. Wstęp matematyczny o ciałach skończonych i krzywych eliptycznych był bardzo ciekawy. Im dalej w las tym ciemniej. Nawet ciemniej niż się spodziewałem. Po paru rozdziałach przestałem robić ćwiczenia w pythonie z lenistwa, może z braku czasu i przestałem to wszystko w pełni rozumieć.
February 15, 2019
Precise, Didactic, and Clear.

This book is not only a great explanation about how to understand the Bitcoin protocol but it is more than that, through the guidance of Jimmy the reader visualize the things that are possible to accomplish with the Bitcoin technology.

The method used in the book reflects the method used in his classes around the world, experimenting step by step the building blocks of Bitcoin technology, until having a fully working library that interacts with the real network.

For anyone that wants to learn more about the foundations of the Bitcoin I recommend this book!

Profile Image for Ferdous Bhai.
1 review
February 16, 2019
Jimmy Song has been churning out dozens of new Bitcoin developers almost every week over the course of the last year and in this book he presents the material he has been teaching in his programming seminars.

As an educator, Bitcoin Core contributor, advisor, and entrepreneur, Jimmy Song has a nuanced and broad understanding of what Bitcoin is, what problems it can solve, and is able to teach how to code and build applications using the Bitcoin protocol to young developers with an only introductory level of understanding of Python. If you're a developer interested in learning Bitcoin/blockchain/cryptocurrencies, this is the book where you should get started!
1 review
April 9, 2019
The best book to really understand bitcoin. This book will guide you in a step by step (in this case a chapter by chapter) way into the nitty-gritty of the bitcoin protocol (and cryptographical properties). In the end you will have made your own bitcoin node and there is no more satisfaction to make a bitcoin transaction on the test-net with that node.
Some programming experience is needed but you do not need to be a master in field.

Highly recommend the book!
Profile Image for Alex.
557 reviews40 followers
March 11, 2020
An invaluable resource for understanding how Bitcoin transactions work at a deep level. The programming exercises are thoughtful and help reinforce the core concepts from each chapter, and I very much appreciated the breadth that the book covered without feeling like it skimped on any area. Highly recommended to anyone interested in the system overall even if they do not ultimately wind up programming applications for Bitcoin specifically.
4 reviews3 followers
March 5, 2022
This does an excellent job of leading you through how to program bitcoin by developing a simple Python library. The explanations are quite thorough and the use of color in this is amazing. Both the illustrations of scripts, but especially the decoding of long hex strings by color make it very to see each constituent part. I highly recommend this if you want to begin understanding how bitcoin works from a technical point of view.
Profile Image for Warren Mcpherson.
195 reviews29 followers
June 7, 2019
This is a great technology book.
Concise, clear explanations supported by the use of Jupyter Notebooks that demonstrate algorithms in a way you can experiment with. The book is about Bitcoin, but technologies like elliptic curves and bloom filters are used all over the place and this may be the best way to learn that you will find.
1 review
December 27, 2019
Wow, I wish more textbooks were like this. The topics were presented in a very suitable order, and everything was described in a clear, down-to-earth way. The exercises were especially good, and really helped to clarify tricky points.

This is not "light reading", so be prepared to put in a lot of effort! But the payoff at the end is very rewarding.
Displaying 1 - 14 of 14 reviews

Can't find what you're looking for?

Get help and learn more about the design.