d9f6cf53c7
- Describe topological order to help readers understand how that solves the double spend problem - Mention that transactions can be safely relayed one block before their locktime allows them to be included in a block because they'll be valid next block. - Be a bit clearer about when subsidy becomes zero due to rounding and when BIP42 makes it zero unconditionally. - Describe the creation of the witness merkle root before the block header merkle root - Move up note about the retarget off-by-one bug - Make "best blockchain" an inherent property and not an alias for a current chain. When a new block arrives that triggers a reorg, we don't switch best blockchains---the new chain is the best blockchain and we switch to using it. - Combine two sections about forks that were repetitive - Mention that pool miners also need to prove they paid the pool's preferred coinbase transaction template - Add a todo to clarify terminology around the 51% attack. The existing text used this in a way that's consistent with how it was used in early Bitcoin history, but it's potentially confusing because it doesn't actually require a majority of hashrate to make the attack and it confuses it with a censorship attack that does require a majority (or at least a selfishing mining minority) to maintain. - Reduce the situations we describe as "double spends". Consensus prevents double spending within a valid chain; the other situations are about unconfirmed transactions, which might better be described using other terms that won't confuse readers into thinking Bitcoin's double spend protection doesn't work. - Add warning about backing up more than your seed when multisig or complex contracts are in use. - Add a todo to fix "millibits" situation, which might involve image changes. - Note that the first commitment transaction (the refund) needs to be signed before the funding transaction in LN channels. - Pluralize "bitcoin" as necessary (somehow missed this before). - Drop mention of tumblebit and teechan, which nobody is working on AFAIK. |
||
---|---|---|
chapters | ||
code | ||
images | ||
meta | ||
snippets | ||
theme | ||
tools | ||
.gitignore | ||
.travis.yml | ||
appdx-bips.asciidoc | ||
appdx-bitcoinwhitepaper.asciidoc | ||
appdx-bx.asciidoc | ||
appdx-pycoin.asciidoc | ||
atlas.json | ||
author_bio.html | ||
book.asciidoc | ||
ch01.asciidoc | ||
ch02.asciidoc | ||
ch03.asciidoc | ||
ch04.asciidoc | ||
ch05.asciidoc | ||
ch08.asciidoc | ||
ch09.asciidoc | ||
ch10.asciidoc | ||
ch11.asciidoc | ||
ch12.asciidoc | ||
colo.html | ||
copyright.html | ||
cover.html | ||
dedication.html | ||
glossary.asciidoc | ||
ix.html | ||
LICENSE | ||
mast.asciidoc | ||
praise.html | ||
preface.asciidoc | ||
README.md | ||
second_edition_changes.asciidoc | ||
tapscript.asciidoc | ||
titlepage.html | ||
toc.html |
Mastering Bitcoin
Mastering Bitcoin is a book for developers, although the first two chapters cover bitcoin at a level that is also approachable to non-programmers. Anyone with a basic understanding of technology can read the first two chapters to get a great understanding of bitcoin.
This repository contains the complete first edition, second print, published in December 2014, and the complete second edition, second print, published in July 2017, as published by O'Reilly Media in paperback and ebook formats.
Issues, Errors, Comments, Contributions
If you know how to make a pull request to contribute a fix, please write the correction and use a pull request to submit it for consideration against the develop branch. If you are making several changes, please use a separate commit for each to make it easier to cherry-pick or resolve conflicts. Otherwise, please submit an issue, explaining the error or comment. If you would like to contribute extensive changes or new material, please coordinate with the author first; contact information can be found on his web site: https://antonopoulos.com/
Reading this book (Where is the PDF?)
To read this book, see book.asciidoc. Click on each of the chapters to read in your browser. This is not as convenient as reading a PDF or an ebook on your e-reader, for which there is a cost (see below).
The 2nd edition of "Mastering Bitcoin" is available under a CC-BY-NC-ND license, not a CC-BY-SA license.
It is deliberately not available as a PDF. Why? Because a PDF is a "derivative" product, which is what the ND prohibits. That's because the publisher (O'Reilly Media) is a for-profit publisher who puts considerable resources behind distributing the book. The book will eventually (within a year of publication) be released under a CC-BY-SA license, at which point the PDF format and translations will be allowed. Until then, making PDF copies violates the license and interferes with the publisher's (and the author's) ability to make a living. Furthermore, if you make it so the publisher can't recoup their investment, they will delay the release into CC-BY-SA.
Please don't create or distribute PDFs until the license is changed to CC-BY-SA. It is rare for a publisher to even agree to a CC-BY-NC-ND license. Don't make it harder for free culture by violating even that, already generous, license.
Published
"Mastering Bitcoin (Second Edition, Second Print): Programming the Open Blockchain" is now available in paperback and ebook formats by many book sellers worldwide:
Mastering Bitcoin (First Edition Second Print) is also published in Japanese, Korean, and Chinese (Simplified) by publishers in the respective countries.
Mastering Bitcoin (Open Edition), based on the First Edition, has been translated by volunteers into more than a dozen languages. Translations are available for free under CC-BY-SA license at: https://bitcoinbook.info
Source
The book's source code, found in this repository, is kept synchronized with the print and ebook editions.
Mastering Bitcoin - First Edition
The tags Edition1Print1, Edition1Print2 correspond to the two existing prints of Mastering Bitcoin (First Edition) as published by O'Reilly Media.
Mastering Bitcoin - First Edition by Andreas M. Antonopoulos LLC is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
This "Free Culture" compliant license was approved by my publisher O'Reilly Media (http://oreilly.com), who understands the value of open source. O'Reilly Media is not just the world's best publisher of technical books, but is also a strong supporter of this open culture and the sharing of knowledge.
Thank you O'Reilly Media!
Mastering Bitcoin - Second Edition
The tags, second_edition_print_1 and second_edition_print2, correspond to the first (June 8th 2017) and second (July 20th 2017) print of Mastering Bitcoin (Second Edition), as published by O'Reilly Media.
Mastering Bitcoin - Second Edition by Andreas M. Antonopoulos LLC is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
It is expected that the second edition will be released under a CC-BY-SA license within a year of publication.
Translations
If you are interested in translating this book, please join our team of volunteers at: https://www.transifex.com/bitcoinbook/mastering-bitcoin/
Free copies of "Mastering Bitcoin Open Edition," translated in many languages, can be downloaded from: https://bitcoinbook.info