Author

Topic: Standardizing the API, and proliferation of different types of clients (Read 10611 times)

newbie
Activity: 5
Merit: 0
Any new client that decides to change the rules would have to branch the chain.
Well that's a bit extreme, don't you think? Only changes to the basic functionality of generating proof of work and subsequently hashing transactions with them cannot be touched, the protocol itself can be designed to be quite extensible, just as BitTorrent, where the clients might provide additional features if supported.

I'd really like to see some alternative clients that could then be customized with all sorts of features and run as a normal daemon just like mail and web :-)

Agree the network protocol can be changed without branching the proof of work chain. But the rules on what transactions to accept, e.g., the 50 bitcoins going to the author of each block, must stay the same or it will need to be branched. For example if a new client comes out that drops the 50 bitcoins into my account instead of the authors account will work among the new clients but existing clients will not build on top of those invalid transactions.
hero member
Activity: 489
Merit: 505
Any new client that decides to change the rules would have to branch the chain.
Well that's a bit extreme, don't you think? Only changes to the basic functionality of generating proof of work and subsequently hashing transactions with them cannot be touched, the protocol itself can be designed to be quite extensible, just as BitTorrent, where the clients might provide additional features if supported.

I'd really like to see some alternative clients that could then be customized with all sorts of features and run as a normal daemon just like mail and web :-)
newbie
Activity: 5
Merit: 0
Any new client that decides to change the rules would have to branch the chain.

If the branched chain can not keep up with the original chain then individuals and businesses will eventually reject transactions made on that chain, and honor only transactions on the larger original chain.

If Bitcoin decides to make an unpopular rule in its next version release, it too would require a branch (because older versions are not familiar with the new rules) then concerned individuals will encourage others to roll back to the earlier version and the earlier version's chain would remain longer than the new version and it would be the only accepted history of transactions.

So I do not think anything bad could come of allowing other clients to exist on the network. In fact it is the only way for the currency to survive. People will not trust an arbitrary closed standard.

member
Activity: 70
Merit: 11
One of the best things that could happen to Bitcoin is for there to be an explosion of apps which support the API, and allow Bitcoin transactions. I am thinking of the explosion that we saw with BitTorrent; it was a great boost for the format. We had a standard client, and then we saw an explosion of many additional clients that also supported the format. Here are some things that could help:

- Standardization of the wallet file. Tools to extract coins and send them into other wallets. There are already tools to back up and restore files, and encrypt files, so the coins just need to be exposed somehow so they can be manipulated as individual entities.
- Exposure of all of Bitcoin functionality in a standard API. It should be possible for users to perform all types of queries in order to extract all visible data (i.e. where a coin has passed by before). Everything that is visible should be externally exposable.
- Seperation of UI from the engine. This ties into the previous point.

Once the API is standardized, it could then be ported to other platforms, such as Java, and deployed on a mobile phone to perform transactions.

The danger is that with the proliferation of different clients, control over the currency is reduced. What if two different clients decide to handle the generation of new bitcoins differently? Will bad currency drive out the good?

What do you guys think?
Jump to: