Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Dev Docs: "Not A Specification" #679
Conversation
harding
added
the
Dev Docs
label
Dec 12, 2014
saivann
commented on the diff
Dec 12, 2014
| +whose wealth is lost. | ||
| + | ||
| +The only correct specification of consensus behavior is the actual | ||
| +program behavior of the majority software on the network. As that | ||
| +behavior is subject to arbitrary inputs<!--noref--> in a large variety | ||
| +of unique environments, it cannot ever be fully documented here or | ||
| +anywhere else. | ||
| + | ||
| +However, the Bitcoin Core developers are working on making their | ||
| +consensus code portable so other implementations can use it. Bitcoin | ||
| +Core 0.10 will provide `libbitcoinconsensus`, a first attempt at | ||
| +exporting some consensus code. Future versions of Bitcoin Core will | ||
| +likely provide consensus code that is more complete, more portable, and | ||
| +more consistent in diverse environments. | ||
| + | ||
| +In addition, we also warn you that this documentation has not been |
saivann
Contributor
|
saivann
and 1 other
commented on an outdated diff
Dec 12, 2014
| + | ||
| +The Bitcoin.org Developer Documentation describes how Bitcoin works to | ||
| +help educate new Bitcoin developers, but it is not a specification---and | ||
| +it never will be. | ||
| + | ||
| +Bitcoin security depends on consensus. Should your program diverge from | ||
| +consensus, its security is weakened or destroyed. The cause of the | ||
| +divergence doesn't matter: it could be a bug in your program, it could | ||
| +be an [error in this documentation][errors in docs] which you | ||
| +implemented as described, or it could be you do everything right but the | ||
| +majority software on the network [behaves unexpectedly][v0.8 chain | ||
| +fork]. The specific cause will not matter to the users of your software | ||
| +whose wealth is lost. | ||
| + | ||
| +The only correct specification of consensus behavior is the actual | ||
| +program behavior of the majority software on the network. As that |
saivann
Contributor
|
saivann
commented on the diff
Dec 12, 2014
| @@ -23,3 +24,43 @@ links will be shown in blue. If you hover over a cross-reference link, a brief | ||
| definition of the term will be displayed in a tooltip. | ||
| {% endautocrossref %} | ||
| + | ||
| +#### Not A Specification | ||
| +{:.no_toc} | ||
| + | ||
| +{% autocrossref %} | ||
| + | ||
| +The Bitcoin.org Developer Documentation describes how Bitcoin works to | ||
| +help educate new Bitcoin developers, but it is not a specification---and | ||
| +it never will be. | ||
| + | ||
| +Bitcoin security depends on consensus. Should your program diverge from | ||
| +consensus, its security is weakened or destroyed. The cause of the | ||
| +divergence doesn't matter: it could be a bug in your program, it could | ||
| +be an [error in this documentation][errors in docs] which you |
saivann
Contributor
|
saivann
commented on the diff
Dec 12, 2014
| @@ -23,3 +24,43 @@ links will be shown in blue. If you hover over a cross-reference link, a brief | ||
| definition of the term will be displayed in a tooltip. | ||
| {% endautocrossref %} | ||
| + | ||
| +#### Not A Specification |
harding
Contributor
|
|
@harding As far as I'm concerned, LGTM, thanks! |
|
@saivann thanks for your review! I think all feedback has been addressed: commit de7d371 changes the "majority" phrasing, I tagged all the old dev docs issues so the past issues link demonstrates the doc's fallibility, and opened pull #680 to update the disclaimer. Thanks again! |
harding
added some commits
Dec 12, 2014
|
Rebased and added the new subhead links to the Not A Specification subsection. In the absence of critical feedback, I'll merge this around 13:00 UTC Thursday (48 hours from now). Additional reviews, even after the merge, are always appreciated. |
harding commentedDec 12, 2014
Preview: http://dg0.dtrt.org/en/developer-reference#not-a-specification
Make explicit that the docs are not a specification and never will be:
This is inspired by @gmaxwell's recent BitcoinTalk post about protocol standardization. @gmaxwell: I'd appreciate it if you could review the new section preview linked above; it's only 5 short paragraphs.