Subject: Re: [Bitcoin-development] Change to multiple executables?

From: Christian Decker <[email-masked]>
Date: Thu, 11 Aug 2011 14:01:33 +0200

On Thu, Aug 11, 2011 at 1:45 PM, Joel Joonatan Kaartinen <
[email-masked]> wrote:

> On Thu, 2011-08-11 at 06:47 +0100, Andy Parkins wrote:
> > Again you're missing my point... you are still shooting ideas down.
>
> And you're only shooting his actions down without indicating clearly
> what you think ought to be done instead. What do you want him to say
> instead?
>
> > > community also seems rather hard-wired against breaking changes like
> > > that, because it implies that we lowly dev peons are daring to mess
> > > with the Blessed Satoshi Design that has received extensive study, and
> > > 100% communal agreement.
> >
> > Well the community had better unhardwire itself or its going to end up
> with
> > five developers and no more.
>
> No way that will happen. A fork is going to happen sooner rather than
> later if this continues. It'd be great if it could be done within this
> project and named bitcoin-dev or bitcoin-next or similar.
>
I personally would welcome alternative clients as a vulnerability in the
main client right now has the potential to kill the entire network.

>
> If this is not done, I wouldn't be surprised with the network splitting
> into 2 camps with different protocols but still working on the same
> blockchain.
>
Changes to the protocol are hard, mainly because hashes of packets are used
to identify transactions and blocks, and even the target hash is a hash of a
packet.
As for your proposal to eliminate some parts of the protocol, I have to
agree (the magic bytes seem an ugly hack by satoshi as I discussed with
Mike, and the double SHA256 hashes as checksums are incredibly wasteful, and
seem to have been chosen simply because a double hashing was already
implemented).

>
> > > If the community changes its mind, and there are strong calls to make
> > > a breaking change, we can certainly do that.  Bitcoin is not only open
> > > source but very much democratic -- people vote by choosing which
> > > client software to use.
> >
> > Voting with ones feet should be a last resort.  Wouldn't it be better not
> to
> > end up with incompatible clients out there?
>
> There's no way to get the majority to vote with their feet to move to an
> incompatible client. Not immediately anyway. It can happen gradually
> though.
>
> As in: 1) alternative client is published that is compatible but
> extended. 2) this client gets the majority share of users/miners 3) they
> see this and decide to break compatibility. 4) original bitcoin client
> is now incompatible/history.
>
Changes should be implemented with backward compatibility in mind, even if
it restricts the freedom of what can be changed.

>
> > > It's negative to weight costs vs. benefits?  That is what I expect any
> > > good engineer to do.
> >
> > I don't think that's what's happening.  Not once have I seen the
> "benefits"
> > side of that equation.  What I have seen is plenty of "I can't see a use
> > case for that"; when the key word in that sentence is "I".
>
> What is happening here is that most suggestions you point at have been
> discussed about before and so the "early adopter" developers remember
> that a decision about that was made already. However, the problem here
> lies with the fact that it's difficult to find the previous
> conversations.
>
> If there was a section in the wiki for recording past suggestions, there
> would be no need to say 'no'. You could instead say "We have discussed
> this before, please read..." and give them a link to the page with the
> relevant discussion. Of course, this would require actively forwarding
> people to the wiki for discussions and having them there. I think this
> would be a good idea.
>
Having a Wiki or a single Wikipage to list proposed changes, with all pro
and cons, maybe pointing back to the original discussion would be nice. But
don't forget that situations change, and features that have been shot down
way back might become reachable/desirable at a later time, so please don't
just use it as a method to shoot down ideas, but as a way to bring people up
to speed and, if necessary, continue the discussion where it left.

>
> That would leave this list for discussing and coordinating the
> implementation of the changes that have been agreed on.
>
> For things that have already been discussed, you could try to find the
> previous discussion and add it there. But I expect for some things, new
> discussion needs to be had to get it on the wiki.
>
> - Joel
>
- cdecker