Post
Topic
Board Development & Technical Discussion
Re: Bitcoin protocol spec
by
TierNolan
on 31/12/2013, 00:49:47 UTC
This means that no developer can depend on the written documentation as a definitive description of intended (or actual) behavior.  As such, while the written documentation can be useful as a reference and as educational material for getting started, it is useless as a specification for exact behavior.

That is a statement of the principle that "the reference client is the spec".  It doesn't necessarily justify it.

Is the long term plan that there will be one reference client forever?  Ideally, the protocol should include some kind of system for handling a situation where some of the miners are using a client that has forked.

For example, if there was customer and miner clients, then customer clients would accept a super-set of blocks relative to miners.

There could be a system where miners pass blocks and transactions through multiple clients and only accept blocks that are accepted by all.  The offending block would be logged for analysis and client authors would be expected to bring their software into compliance.

I also think that an official "verifier" library would be a big improvement.  Essentially, that would accept a series of blocks and verify that it is correct.

That would be a less complex piece of software relative to an entire client including networking and orphan handling.  It just says Yes/No to a blockchain.