Pages:
Author

Topic: Nope, we're not using a decentralized protocol yet, just a piece of software (Read 3026 times)

legendary
Activity: 1204
Merit: 1015
All those claiming that the market sorted itself out, you have a valid point and I mostly agree. The market did sort itself out.

I just have one question: what would have happened if there had been no time-sensitive discussions among developers? What if the new version were released and the developers would not have had discussions as to what should miner do or not do?

I'm genuinely curious if the miners would have reverted to the old chain. Again, I don't think anything "wrong" happened, only that I think the miners of 0.8 should have stayed on 0.8, making other miners understand that it's not the software that determines what's good or bad, it's simply that your software has to speak the same language that the majority of software speaks. Hence, a protocol. Perhaps they thought that moving forward with the new chain would be detrimental to the future of bitcoin and the future of their mining enterprise. I'm just curious.
We would have reverted, because Eleuthria started the roll-back process on BTC Guild prior to receiving an ACK from the devs (by at least a few seconds). The only way this would have turned out differently would have been if the devs were insistent on not going back to the pre-0.8 chain and if Eleuthria listened to them.
legendary
Activity: 2940
Merit: 1090
You are wrong about one client. Ufasoft Coin also is full validating node and miner too.

Great, so we have at least two implementations.

Anything network-critical they do differently presumably implies one or both of them are not up to spec. What they both do might happen to match the spec.

So the doc devs should be able to get a first draught of a spec down just by documenting what it is that both of these do.

-MarkM-
legendary
Activity: 1512
Merit: 1042
Death to enemies!
You are wrong about one client. Ufasoft Coin also is full validating node and miner too.
hero member
Activity: 826
Merit: 1000
donator
Activity: 980
Merit: 1004
felonious vagrancy, personified
.. and once you answer all that:  what if the network consists entirely of non-conforming implementations that take shortcuts and just assume that there will never be a re-org more than X blocks deep?

As long as they go into safe mode on detection of a long invalid chain (like the Satoshi client does on this line of code), they'll simply get stuck until a human intervenes.  Not pretty, but it could be worse.  In the meantime the miners will fight it out, like they did during the recent fork, with a powerful incentive to come to some sort of agreement since a lot of hashpower (money) is being wasted in the meantime.  If there's a dispute, eventually somebody will cry "uncle" and relent.

Regardless, on the larger point I agree that trying to call some prose document a "specification" is not really practical.  The answer always will be "whatever most of the clients will go along with."  Longer-invalid-chain and recent-long-fork protections are important because they make this more predictable.
donator
Activity: 980
Merit: 1004
felonious vagrancy, personified
Instead, we have one client, one source, one community. This is not decentralization.

Unfortunately there is a lot of FUD floating around about the supposed "risks" of alternative fully-validating implementations.  If you take a calm, careful look at the technical issues involved and don't settle for slogans it turns out that using an alternative fully-validating implementation carries no new risks (relative to the Satoshi client) except possibly the loss of revenue by people who mine with said alternative implementations.

This assumes that the alternative implementation takes a few sensible precautions: (a) watch for long invalid chains and if you see one go into safe mode and (b) watch for X-block-long forks within the last day or so and if you see one go into safe mode, where X is the number of confirmations you wait for before believing a transaction and a "day or so" is longer than it takes the miners to notice that they could be losing money (empirically: less than two hours).

The Satoshi client already does (a) and always has.  If it had done (b) the recent blockchain fork would not have happened (this is hindsight -- I'm not claiming to have noticed this beforehand).
legendary
Activity: 2940
Merit: 1090
.. and once you answer all that:  what if the network consists entirely of non-conforming implementations that take shortcuts and just assume that there will never be a re-org more than X blocks deep?

That part is probably the easiest part. It is merely a description of an archaeological dark age that preceded the advent of the doc devs' excellent and so very much needed work.

Looking forward to seeing what they come up with! Smiley

-MarkM-

EDIT: a very clunky "shutdown if ever a re-org of more than 6 blocks would otherwise be attempted" might date back to an era in which Pak Protectors were still around expecting to intervene to fix anything at any time, as is their wont.
legendary
Activity: 1652
Merit: 2300
Chief Scientist
It might mean lots of work for someone, but what devs are we speaking of here, documentation devs or code devs? I suspect if the doc devs just shut up and got to work on the docs the code devs wouldn't mind at all.

More documentation is great, so yeah, if you want a formal spec, go for it.

Here's a tricky question you can start with:

Assume there is a fork consisting of max-block-size blocks. How deep a fork/re-organization MUST a conforming implementation handle?  6 blocks? 1000 blocks?  as-many-blocks-as-there-are-in-the-chain blocks?

Does that imply that a confirming implementation MUST be running with a certain amount of memory, or MUST a conforming implementation be able to handle such a chain fork within a certain amount of time?

.. and once you answer all that:  what if the network consists entirely of non-conforming implementations that take shortcuts and just assume that there will never be a re-org more than X blocks deep?
legendary
Activity: 2940
Merit: 1090
Maybe when the market can't act, it sings and dances! Smiley

(Lots of song and dance from people who [ didn't | don't | weren't equipped to | aren't equipped to ] act ...)

-MarkM-
legendary
Activity: 1078
Merit: 1003
I believe the market should have solved this on their own.

Einstein, what do you think happened?  Roll Eyes

All those claiming that the market sorted itself out, you have a valid point and I mostly agree. The market did sort itself out.

I just have one question: what would have happened if there had been no time-sensitive discussions among developers? What if the new version were released and the developers would not have had discussions as to what should miner do or not do?

What you're asking does not make any sense because to me you are asking what would the market do if the market couldn't act in the first place since obviously when it could act, your scenario didn't play out.

If the market can't act then the market can't act and Bitcoin, in my eyes at least, has already failed regardless what that would means specifically..
WiW
sr. member
Activity: 277
Merit: 250
"The public is stupid, hence the public will pay"
I believe the market should have solved this on their own.

Einstein, what do you think happened?  Roll Eyes

All those claiming that the market sorted itself out, you have a valid point and I mostly agree. The market did sort itself out.

I just have one question: what would have happened if there had been no time-sensitive discussions among developers? What if the new version were released and the developers would not have had discussions as to what should miner do or not do?

I'm genuinely curious if the miners would have reverted to the old chain. Again, I don't think anything "wrong" happened, only that I think the miners of 0.8 should have stayed on 0.8, making other miners understand that it's not the software that determines what's good or bad, it's simply that your software has to speak the same language that the majority of software speaks. Hence, a protocol. Perhaps they thought that moving forward with the new chain would be detrimental to the future of bitcoin and the future of their mining enterprise. I'm just curious.


There is another threat suggesting the documentation and "formalisation" of the protocol, some of the devs are reluctant as it means lots of work lots and lots of documentation for something that will probably change dramatically over time and the fact that whoever writes the protocol is doing so as a small elite so to speak.

"The protocol" is the language which most software understands. Nobody "writes" the protocol, just as nobody "writes" the English language. If everyone starts using this new word like "tweeting" then that's now part of the English language. Even if no "small elite" determined it. Like you said, the original client is the protocol - but not because that they are writing it, simply because they are the only ones speaking this language. To decentralize you simply need more people speaking the language.
legendary
Activity: 1988
Merit: 1012
Beyond Imagination
OP: you're right. But I think you miss the point of the Bitcoin project: to create a decentralized payment processing network. Your observation would be better put: "we're not done yet!"

Just a decentralized payment processing network? I think bitcoin is much more than that  Wink

As an end user, I don't care too much about the transaction system being centralized or not, as long as it provide certain function. Bitcoin can not protect consumer (charge back not possible), it can not replace other payment services like VISA/PAYPAL

Many people are attracted by bitcoin because of the fundamental flaw in today's debt-driven monetary system since the abandon of gold standard  (unsustainable growth) , there is a strong demand for a type of honest money
donator
Activity: 1464
Merit: 1047
I outlived my lifetime membership:)
I just want to emphasize, I have no criticism against anyone in the bitcoin community. I most certainly did not mean to make the particular point that I would call what happened as technically a 51% attack (and it wasn't a bad thing, it was simply the decision that was made at the time and bitcoin is still alive and kicking). Also, I did not mean to make Gavin look like a terrible dictator, only that I see it as there being a focal point where network-wide decisions are made (and this is not a bad thing, it's simply the way it is and bitcoin is still alive and kicking). Like I said, everything is fine and I believe bitcoin was designed in such a way that things will eventually all work out (until a competing currency takes it's place).

My point with this thread was to simply emphasize that the network is still young, as evident by the fact that this decentralized network still relies on a very strong (and excellently performing) developer community. I think they're doing a great job, but please note that as long as we need to rely on the developers of the single most dominant client, the network is still very immature.

The protocol is not yet a protocol if there's only one de-facto client using it. In this case, it's simply the client's implementation, not a protocol.

OP: you're right. But I think you miss the point of the Bitcoin project: to create a decentralized payment processing network. Your observation would be better put: "we're not done yet!"

Notice the title has a "yet" in it  Wink
Bingo. I agree.  This experiment is still in progress.  A true protocol it is not.  Is that the goal? Yes.  But we need to survive until we get there.  The 1.0 release will be very interesting...hopefully it won't come too soon.  We can't have oopsy network splits in 1.0. 
legendary
Activity: 2940
Merit: 1090
There is another threat suggesting the documentation and "formalisation" of the protocol, some of the devs are reluctant as it means lots of work lots and lots of documentation for something that will probably change dramatically over time and the fact that whoever writes the protocol is doing so as a small elite so to speak.

It might mean lots of work for someone, but what devs are we speaking of here, documentation devs or code devs? I suspect if the doc devs just shut up and got to work on the docs the code devs wouldn't mind at all.

And if the code devs feel the docs devs are a small elite and that there is something wrong with that they are welcome to wear multiple hats, aren't they? Or are the docs devs opposed to permitting code devs to participate in their hallowed process?

I think if it was atleast documented and not quite standardised but suggested then we could have an actual protocol instead of this situation where the original client code is the protocol.

If there was this documentation available it would attract more devs and would stop threads like this springing up, Clients would be able to be developed independently that are compatable with each other and bitcoin would prosper, if its documented people can review and comment on it even if they don't understand C++.

I am interested in seeing some alternative code in action, too. Maybe the docs devs can document what protocol-critical (hence "part of the spec") behavior in the various other impementations out there differs from the Satoshi-node behavior so folks can weigh which behavior best fits "the spec" or would make a better "spec" ?

-MarkM-
legendary
Activity: 1330
Merit: 1000
If there's a bug in some filesharing software, the whole network doesn't go into a panic. Only the users of *that* software have to deal with *their* problem.

That's what happened.
legendary
Activity: 1988
Merit: 1012
Beyond Imagination
I believe the market should have solved this on their own.

Einstein, what do you think happened?  Roll Eyes

Or did you see anyone holding a gun to the heads of miners forcing them to follow their orders?

You see, even the protocol isn't set in stone. If the majority of hashing power (or whatever non-full nodes) vote for a new protocol and use software that implements it, then that's the new bitcoin. That's what makes bitcoin _decentralized_.

You are misinformed.

Had many miners not switched back to 0.7 no one would have been forced to do anything, we would have just had two hard forks of the blockchain and those who favored the 0.7 fork could use that and those who favored the 0.8 fork could use that. Of course who knows what that would do to BitcoinA and BitcoinB and their usefulness but my point is that the quoted above is factually incorrect.

So, like any government in the world, now we have the left wing and right wing, bitcoin users finally have a choice  Cheesy

I'm still not very clear how this fork will affect the merchant, will their business transaction get random error or they can select which chain to use by simply switching to a different client version?
full member
Activity: 154
Merit: 100
There is another threat suggesting the documentation and "formalisation" of the protocol, some of the devs are reluctant as it means lots of work lots and lots of documentation for something that will probably change dramatically over time and the fact that whoever writes the protocol is doing so as a small elite so to speak.

I think if it was atleast documented and not quite standardised but suggested then we could have an actual protocol instead of this situation where the original client code is the protocol.

If there was this documentation available it would attract more devs and would stop threads like this springing up, Clients would be able to be developed independently that are compatable with each other and bitcoin would prosper, if its documented people can review and comment on it even if they don't understand C++.


legendary
Activity: 1078
Merit: 1003
I believe the market should have solved this on their own.

Einstein, what do you think happened?  Roll Eyes

Or did you see anyone holding a gun to the heads of miners forcing them to follow their orders?

You see, even the protocol isn't set in stone. If the majority of hashing power (or whatever non-full nodes) vote for a new protocol and use software that implements it, then that's the new bitcoin. That's what makes bitcoin _decentralized_.

You are misinformed.

Had many miners not switched back to 0.7 no one would have been forced to do anything, we would have just had two hard forks of the blockchain and those who favored the 0.7 fork could use that and those who favored the 0.8 fork could use that. Of course who knows what that would do to BitcoinA and BitcoinB and their usefulness but my point is that the quoted above is factually incorrect.
legendary
Activity: 1344
Merit: 1000
The events of the latest software bug which catalyzed a massive 23% flashcrash, show us that bitcoin is not a protocol yet - it's still totally bootstrapped to the open source Satoshi client. One bug affects the entire network. It's not a protocol, it's whatever that piece of software determines it is.

This doesn't happen in any other p2p network that I know of. If there's a bug in some filesharing software, the whole network doesn't go into a panic. Only the users of *that* software have to deal with *their* problem.

Of course, I believe there shouldn't have been an orchestrated revert to the "old" chain (a.k.a. an orchestrated 51% attack). I believe the market should have solved this on their own. Yes, it would have been a massive blow to the miners who didn't upgrade, but it's their fault for using a client that follows a different protocol. That would have reaffirmed that the software you use is your vote for which protocol to use.

You see, even the protocol isn't set in stone. If the majority of hashing power (or whatever non-full nodes) vote for a new protocol and use software that implements it, then that's the new bitcoin. That's what makes bitcoin _decentralized_.

Instead, we have one client, one source, one community. This is not decentralization.

Wall Street Flash Crash

Thursday May 6, 2010 in which the Dow Jones Industrial Average plunged about 1000 points (about 9%) only to recover those losses before the end of the trading day. It was the second largest point swing, 1,010.14 points, and the biggest one-day point decline, 998.5 points, on an intraday basis in Dow Jones Industrial Average history.
WiW
sr. member
Activity: 277
Merit: 250
"The public is stupid, hence the public will pay"
I just want to emphasize, I have no criticism against anyone in the bitcoin community. I most certainly did not mean to make the particular point that I would call what happened as technically a 51% attack (and it wasn't a bad thing, it was simply the decision that was made at the time and bitcoin is still alive and kicking). Also, I did not mean to make Gavin look like a terrible dictator, only that I see it as there being a focal point where network-wide decisions are made (and this is not a bad thing, it's simply the way it is and bitcoin is still alive and kicking). Like I said, everything is fine and I believe bitcoin was designed in such a way that things will eventually all work out (until a competing currency takes it's place).

My point with this thread was to simply emphasize that the network is still young, as evident by the fact that this decentralized network still relies on a very strong (and excellently performing) developer community. I think they're doing a great job, but please note that as long as we need to rely on the developers of the single most dominant client, the network is still very immature.

The protocol is not yet a protocol if there's only one de-facto client using it. In this case, it's simply the client's implementation, not a protocol.

OP: you're right. But I think you miss the point of the Bitcoin project: to create a decentralized payment processing network. Your observation would be better put: "we're not done yet!"

Notice the title has a "yet" in it  Wink
Pages:
Jump to: