On Thu, Aug 11, 2011 at 1:45 PM, Joel Joonatan Kaartinen <joel.kaartinen@gmail.com> 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