Pages:
Author

Topic: Is diversity in bitcoin client implementations a good or a bad thing? - page 2. (Read 925 times)

sr. member
Activity: 476
Merit: 501
Some people argue that there should be one dominant "reference" client (e.g., Core) and everyone should run that.  Others argue that there should be multiple competing implementation (e.g., Core, Classic, BTCd, Bcoin, Unlimited, XT).  What do you think?

I think there should be a well defined and documented protocol. Competing implementations provide technical innovation on how to efficiently implement that protocol. A "reference" client should not define the protocol, otherwise the protocol is ill-defined due to the possibility of unintended implementation of bugs which then define the protocol.
legendary
Activity: 1946
Merit: 1137
correct me if i am wrong but i believe using the world "bitcoin client implementations" is not what you really mean. "client" implies different nodes/wallets or any other project name but working on the same consensus. these implementations you named (e.g., Core, Classic, BTCd, Bcoin, Unlimited, XT) are not implementing bitcoin they are changing bitcoin.

so my answer is:
implementing the same consensus but with different names hence creating different clients is a good thing. being open source it helps people who don't understand one programming language (e.g. c++ that core uses) use another that they understand or feel more conformable with.

as for implementation of different consensus and "changing bitcoin" that is what classic, unlimited,... are doing. it is still a good thing but as long as there aren't more things in the background. shady things that can destroy bitcoin or cause irreparable damage, and in the end as long as they do a proper fork with an overwhelming majority meaning more than 90% support from miners, users, nodes, services,... that can be a good thing to move forward.
hero member
Activity: 1106
Merit: 638
Diversity is good for almost everything, why not for Bitcoin client implementation? (Honest question here.)

To your exact question, is it proven that running multiple Bitcoin clients (or having them in existence) "is critical...to avoid accidental forks"?   
legendary
Activity: 1246
Merit: 1000
Some people argue that there should be one dominant "reference" client (e.g., Core) and everyone should run that.  Others argue that there should be multiple competing implementation (e.g., Core, Classic, BTCd, Bcoin, Unlimited, XT).  What do you think?

When the underlying code is open source, it is invariable that there are multiple reference clients. It is a good thing, because features and reliability of different implementations is different. To each, his own.  Smiley
legendary
Activity: 4466
Merit: 3391
Multiple implementations are necessary. If one implementation goes down or has a bug, then only the users of that implementation are affected. If there are many implementations then the effect of one implementation having a problem is minimal.

The fact is that there are already many implementations currently running. This site (https://bitnodes.21.co/nodes/) lists 83 different implementations that are currently in use. Unfortunately, they are mostly versions of Bitcoin Core, so they all tend to have the same flaws.

Also, there is an important flaw in the single implementation argument. Whenever the single implementation is updated, a new implementation that could create an accidental fork is published. You can't avoid accidental forks by using a single implementation if you want to upgrade it. In fact, there already has been an accidental fork caused by a Bitcoin Core update.
sr. member
Activity: 476
Merit: 254
It will be better if you do more by explaining what you really mean by these two positions you have put forward to be discussed if you want more comment and the reason is because not everybody is computer savy or understand all the technical jargon that goes on in the bitcoin world including myself which I have a feeling occupies a larger percentage of the population. So, do well to come down to our level for easy communication.
Some people argue that there should be one dominant "reference" client (e.g., Core) and everyone should run that.  Others argue that there should be multiple competing implementation (e.g., Core, Classic, BTCd, Bcoin, Unlimited, XT).  What do you think?
legendary
Activity: 1162
Merit: 1007
Some people argue that there should be one dominant "reference" client (e.g., Core) and everyone should run that.  Others argue that there should be multiple competing implementation (e.g., Core, Classic, BTCd, Bcoin, Unlimited, XT).  What do you think?
Pages:
Jump to: