Ask HN: Why isnt there a public spec for Bitcoin core?
Easy rebuttals:
+There is no public spec for linux -https://refspecs.linuxfoundation.org/lsb.shtml
+If you want one go build one
Better reason - there isnt demand for this
I would like to understand what other reasons there could be I'm thinking what would be the purpose or added value of a separate "public spec" document (which would require a significant maintenance effort) when you already have [1] a healthy Github (or Gitlab) project governance going on, [2] Bitcoin feature proposal process. I agree with your comment. What I think is a public spec will help develop client diversity and keep the commits aligned with an explicit spec. Not sure if it's still the case but if I recall correctly, the majority of the bitcoin maintainers are employed by one company... so not sure there's an incentive for them. Its probably more than one company. but even then, lets say that it was one company, shouldnt decentralized,open protocols have open specs to help create more clients? Yes of course they should, but if core development is isolated to one or two companies, then they're not incentivized to produce these open specs so that they can maintain control, because they are also building businesses around these protocols. Another question: Is a protocol truly decentralized if its development is centralized? What is a public spec? "In particular, while this page is quite complete in describing the network protocol, it does not attempt to list all of the rules for block or transaction validity."
Cmon man.. Writing documentation is boring, and requires the kind of rigor and focus that I haven't found to be common in the Bitcoin community. Ponzi schemes generally don't have open specs. Defeats the purpose. Bitcoin does not fall under the definition of a ponzi scheme. And in general, there's no reason why a ponzi scheme couldn't have an open spec. If the incentive structure sounds appealing then people will participate even when they understand something is a ponzi.
When you upgrade your Bitcoin node software, the act of the upgrading is you casting your Yes vote for the changes introduced in that version. The BIPs etc. can help you understand these, but if you want to be 100% diligent, the only fully authoritative source is the state of (the code sources in) the git repo as referenced by the commit hash in the Bitcoin software you are upgrading to. [1] https://github.com/bitcoin/bitcoin/projects
[2] https://github.com/bitcoin/bips