Concerns Regarding Threats by a Developer to Remove Commit Access from Other Developers

Concerns Regarding Threats by a Developer to Remove Commit Access from Other Developers
2015-06-18 10:00 ` Mike Hearn
  
From: odinn @ 2015-06-18  8:54 UTC (permalink / raw)
  To: Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Recently I saw the following video:

https://www.youtube.com/watch?v=8JmvkyQyD8w&t=47m58s

Hadn't seen it until just today, although it was done on June 8, 2015.
So this is a bit dated, but to me it was a bit of a stunner to see the
extreme nature of (some) of the views presented in this video.

Let me be blunt, I have serious concerns regarding threats issued by a
developer in this video, and I think that it is entirely possible that
those of you who are core developers have already seen this and have
been discussing it.  But I am interested in seeing this resolved here
on this list openly and having it resolved.  It's sad and unfortunate
to me, but I feel that it's necessary to do this.  Identify what's
happening, address it squarely, have the person who is threatening
others explain his/her behavior, deal with the problem and move on.
This seems to be very important.  Please tell me if I am wrong about
this or totally flawed in my perspective here.  Go right ahead.

In this video, a particular developer makes the following statement,
stating in part:

"My preferred solution is that Gavin revokes commit access from
everyone else in the project, and then... makes the change himself"

Regardless of how you look at this, and even if we believe that Gavin
will not respond to that developer's request for a so-called
"solution," such a statement (by any developer) is indeed both a
threat and an act of sabotage against the larger bitcoin community.
We should certainly be thankful therefore, for the recent policy
change at bitcoin.org which can be seen here:
https://cloud.githubusercontent.com/assets/61096/8173297/578483f8-1399-1
1e5-8f48-96f33d12b996.png

I firmly believe that any developer who made a statement suggesting
that commit access of others in the project be revoked so that they
can proceed with their personal plan, needs to answer for having made
such a suggestion with a formal apology to this list, followed by an
explanation for why they themselves should not have their commit
access removed.

Overall, however, this sort of bombastic, nuclear suggestion makes me
seriously concerned for the future of bitcoin (as well as any
cryptocurrency which has repositories on Github).

So, you know who you are:  Apologize for your statement ("preferred
solution") and explain to the community why you should still have
commit access in light of the threat you have made to all the other
developers (and indeed to all participants of the bitcoin community).
 These "nuclear options" are unacceptable to us all.

Respectfully,

- -O


- -- 
http://abis.io ~
"a protocol concept to enable decentralization
and expansion of a giving economy, and a new social good"
https://keybase.io/odinn
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVgoc3AAoJEGxwq/inSG8C6QYH/1Ag+4ESTSUPkP8PCTj1AJds
J4MmBz4cX7IYsSttTAjyiwd6oTHCU+wAcXtgZYpzr8rWF62bG5/+kAFUfjKwNsGM
WqcdNOR6h8fQulx8niuro8kZF/xOsG5eHtRK2FMCorxj0t6qn4pH5WAQL73J3hXQ
xI831Nt/L7VTa0jlKbr2/VGlqh6CtGrZ9mXp6aV1MBNwHbFryNBJW9ubvUv/IRxZ
GyJ+c3+Br2KKAQTMsyNn3VXMlXJL6kt0pwwk2od3j/+dKE4pAetHvZ5OgIO+qUWd
6R0/AaoW5jk343TaQ5BHaSpNW+OM9Yc1ycZyqE/YV8JwWeA6G/QdmRVYeoLMCZQ=
=zJeO
-----END PGP SIGNATURE-----



 permalink raw reply	[|nested]
2015-06-18  8:54 [Bitcoin-development] Concerns Regarding Threats by a Developer to Remove Commit Access from Other Developers odinn

  2015-06-18 11:14   ` Wladimir J. van der Laan
                     ` (4 more replies)
  
From: Mike Hearn @ 2015-06-18 10:00 UTC (permalink / raw)
  To: odinn;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1687 bytes --]

Dude, calm down. I don't have commit access to Bitcoin Core and Gavin
already said long ago he wouldn't just commit something, even though he has
the ability to do so.

So why did I say it? Because it's consistent with what I've always said:
 you cannot run a codebase like Wikipedia. Maintainers have to take part in
debates, and then make a decision, and anyone else who was delegated commit
access for robustness or convenience must then respect that decision. It's
the only way to keep a project making progress at a reasonable pace.

This is not a radical position. That's how nearly all coding projects work.
I have been involved with open source for 15 years and the 'single
maintainer who makes decisions' model is normal, even if in some large
codebases  subsystems have delegated submaintainers.

This is also how all my own projects are run. Bitcoinj has multiple people
with commit access. Regardless, if there were to be some design dispute or
whatever, I wouldn't tolerate the others with commit access starting some
kind of Wiki-style edit war in the code if they disagreed. Nor would I ever
expect to get my own way in other people's projects by threatening to
revert the maintainers changes.

Core is in the weird position where there's no decision making ability at
all, because anyone who shows up and shouts enough can generate
'controversy', then Wladimir sees there is disagreement and won't touch the
issue in question. So it just runs and runs and *anyone* with commit access
can then block any change.

I realise some people think this anti-process leads to better decision
making. I disagree. It leads to no decision making, which is not the same
thing at all.

[-- Attachment #2: Type: text/html, Size: 1893 bytes --]

 permalink raw reply	[|nested]
2015-06-18  8:54 [Bitcoin-development] Concerns Regarding Threats by a Developer to Remove Commit Access from Other Developers odinn

  2015-06-18 11:14   ` 
                     ` 
  
From: Mike Hearn @ 2015-06-18 10:00 UTC (permalink / raw)
  To: odinn;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1687 bytes --]

Dude, calm down. I don't have commit access to Bitcoin Core and Gavin
already said long ago he wouldn't just commit something, even though he has
the ability to do so.

So why did I say it? Because it's consistent with what I've always said:
 you cannot run a codebase like Wikipedia. Maintainers have to take part in
debates, and then make a decision, and anyone else who was delegated commit
access for robustness or convenience must then respect that decision. It's
the only way to keep a project making progress at a reasonable pace.

This is not a radical position. That's how nearly all coding projects work.
I have been involved with open source for 15 years and the 'single
maintainer who makes decisions' model is normal, even if in some large
codebases  subsystems have delegated submaintainers.

This is also how all my own projects are run. Bitcoinj has multiple people
with commit access. Regardless, if there were to be some design dispute or
whatever, I wouldn't tolerate the others with commit access starting some
kind of Wiki-style edit war in the code if they disagreed. Nor would I ever
expect to get my own way in other people's projects by threatening to
revert the maintainers changes.

Core is in the weird position where there's no decision making ability at
all, because anyone who shows up and shouts enough can generate
'controversy', then Wladimir sees there is disagreement and won't touch the
issue in question. So it just runs and runs and *anyone* with commit access
can then block any change.

I realise some people think this anti-process leads to better decision
making. I disagree. It leads to no decision making, which is not the same
thing at all.

[-- Attachment #2: Type: text/html, Size: 1893 bytes --]

 permalink raw reply	[|nested]
* 
  2015-06-18 10:00 ` Mike Hearn

  2015-06-18 11:47     ` Wladimir J. van der Laan
                       ` (3 more replies)
  2015-06-18 11:41   ` 
                     ` 
  4 siblings, 4 replies; 60+ messages in thread
From: Wladimir J. van der Laan @ 2015-06-18 11:14 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Thu, Jun 18, 2015 at 12:00:17PM +0200, Mike Hearn wrote:

> Core is in the weird position where there's no decision making ability at
> all, because anyone who shows up and shouts enough can generate
> 'controversy', then Wladimir sees there is disagreement and won't touch the
> issue in question. So it just runs and runs and *anyone* with commit access
> can then block any change.

Bitcoin Core is completely different from your average open source project in one aspect: where it concerns consensus.

Like in any open source project there is lots of decision making ability for code changes. I'd say look at the changelog for e.g. 0.11 https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log, or follow pull requests for a while, to see how many decisions about changes are made from day to day. No, I'm not sitting on my hands, and so is none of the other contributors that you'd like to get rid of.

Consensus changes are *much* more difficult, on the other hand. Even relatively straightforward softforks come with a long discussion process (see BIP62, BIP66). A hardfork is hard to do at the best of times (everyone needs to upgrade their software!), and simply not possible if almost the entire technical community disagrees with you.

Bitcoin is supposed to be a robust, global, decentralized network beyond anyone's control. It makes *no sense* to try to run it as a dictatorship. This would create a handy central position where power can be applied, pushing through changes to the behavior of the system, either by force or other ways of motivation. I refuse to take part in that.

Hence, anything that is controversial needs to be considered really carefully. If I suddenly start making changes to the consensus code without full agreement, by all means take away my commit privileges.

(a major reason for the ongoing libconsensus work is to separate "Bitcoin Core, the node software" and "The Bitcoin Consensus" along clear lines, to avoid this kind of nasty confusion)

Wladimir
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCgAGBQJVgqfOAAoJEHSBCwEjRsmmFT8H/Rkm29AhLhT8R1Vx8oKUIzID
+NB7tOps3lIilkDQIC5zHSknx5iugrrAdRf1w7qPj/o8+xhCZw9ruu8eIq+djkRQ
tvzbHil2pqgT3VHriRlY4lvlmu2NmBcYrAuX9sDhUHBo6cwGajfKMJPfE0haK3K4
7EmfdGXJYJmiBnhE6ikOiU687M2WgsmIGrBDIxeA5wYwVK9Ph8hfcbuj7AHvIMI9
ZNU/V6uhcTjn5wT+6DHGIOxHipYHyAwKb7jKho0XkM6Yi4ORe1mxF5HDtqA0ztta
mZPNjNrt/ngK20xRbqkb0GtxoyZq38ZF3Bq1gaWl2v9MBBMD5ZxQAvgCNUQFEo0=
=W26K
-----END PGP SIGNATURE-----



^ permalink raw reply	[|nested] 60+ messages in thread
* 
  2015-06-18 10:00 ` Mike Hearn

  2015-06-18 11:47     ` 
                       ` 
  2015-06-18 11:41   ` 
                     ` 
  4 siblings, 4 replies; 60+ messages in thread
From: Wladimir J. van der Laan @ 2015-06-18 11:14 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Thu, Jun 18, 2015 at 12:00:17PM +0200, Mike Hearn wrote:

> Core is in the weird position where there's no decision making ability at
> all, because anyone who shows up and shouts enough can generate
> 'controversy', then Wladimir sees there is disagreement and won't touch the
> issue in question. So it just runs and runs and *anyone* with commit access
> can then block any change.

Bitcoin Core is completely different from your average open source project in one aspect: where it concerns consensus.

Like in any open source project there is lots of decision making ability for code changes. I'd say look at the changelog for e.g. 0.11 https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log, or follow pull requests for a while, to see how many decisions about changes are made from day to day. No, I'm not sitting on my hands, and so is none of the other contributors that you'd like to get rid of.

Consensus changes are *much* more difficult, on the other hand. Even relatively straightforward softforks come with a long discussion process (see BIP62, BIP66). A hardfork is hard to do at the best of times (everyone needs to upgrade their software!), and simply not possible if almost the entire technical community disagrees with you.

Bitcoin is supposed to be a robust, global, decentralized network beyond anyone's control. It makes *no sense* to try to run it as a dictatorship. This would create a handy central position where power can be applied, pushing through changes to the behavior of the system, either by force or other ways of motivation. I refuse to take part in that.

Hence, anything that is controversial needs to be considered really carefully. If I suddenly start making changes to the consensus code without full agreement, by all means take away my commit privileges.

(a major reason for the ongoing libconsensus work is to separate "Bitcoin Core, the node software" and "The Bitcoin Consensus" along clear lines, to avoid this kind of nasty confusion)

Wladimir
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCgAGBQJVgqfOAAoJEHSBCwEjRsmmFT8H/Rkm29AhLhT8R1Vx8oKUIzID
+NB7tOps3lIilkDQIC5zHSknx5iugrrAdRf1w7qPj/o8+xhCZw9ruu8eIq+djkRQ
tvzbHil2pqgT3VHriRlY4lvlmu2NmBcYrAuX9sDhUHBo6cwGajfKMJPfE0haK3K4
7EmfdGXJYJmiBnhE6ikOiU687M2WgsmIGrBDIxeA5wYwVK9Ph8hfcbuj7AHvIMI9
ZNU/V6uhcTjn5wT+6DHGIOxHipYHyAwKb7jKho0XkM6Yi4ORe1mxF5HDtqA0ztta
mZPNjNrt/ngK20xRbqkb0GtxoyZq38ZF3Bq1gaWl2v9MBBMD5ZxQAvgCNUQFEo0=
=W26K
-----END PGP SIGNATURE-----



^ permalink raw reply	[|nested] 60+ messages in thread
* 
  2015-06-18 11:14   ` Wladimir J. van der Laan

  2015-06-18 13:36       ` Mike Hearn
  2015-06-18 12:29     ` 
                       ` 
  3 siblings, 1 reply; 60+ messages in thread
From: Wladimir J. van der Laan @ 2015-06-18 11:47 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Thu, Jun 18, 2015 at 01:14:09PM +0200, Wladimir J. van der Laan wrote:

> On Thu, Jun 18, 2015 at 12:00:17PM +0200, Mike Hearn wrote:
> 
> > Core is in the weird position where there's no decision making ability at
> > all, because anyone who shows up and shouts enough can generate
> > 'controversy', then Wladimir sees there is disagreement and won't touch the
> > issue in question. So it just runs and runs and *anyone* with commit access
> > can then block any change.

And allegations that the project is "run like wikipedia" or "an edit war" are verifyably untrue.
Check the commit history.
How many reverts do you see? How many of those do you see that are not simply to get rid of unexpected bugs, to be re-merged later?

Not much more than two, in ~5500 commit over six years. I feel sorry for you that `getutxos` was rejected in a messy way, still you are so held up about it and keep repeating it as if it is a daily occurence. Disingenuous, at the least.

Wladimir
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCgAGBQJVgq/WAAoJEHSBCwEjRsmm8NUIAI/csucOmfF9e+BtSH+uruhl
ox32stQfD3hwcKropLEPFfKvmOcRU1nXBy6lcvhG+axw+WqpC48EvpD73P/BuSv7
RvlLayqP+D6oiNsH+7S7C0/ndy+Pne04D+srSSBhXKfZMqruBqmUSontziJZTeLR
C6CCFwFSAvSXGV873I3i4M4U5QqIrE5PyuK75wjl2SFisd2LjBgfzZh4HDbz85Qr
gApLpdTxu4gDkGx4B9txCkfyb5W2z8nawWYb7+O7y/NbFL1Qlb36MzGuVKL6Zj1z
B8kJrOLVW9ItduVRY/03wLsqBuGC9fjuhWexjKenvMpxfO//VvOxIBA7sCDrxjU=
=lisE
-----END PGP SIGNATURE-----



^ permalink raw reply	[|nested] 60+ messages in thread
2015-06-18 11:14   ` Wladimir J. van der Laan
  2015-06-18 11:47     ` Wladimir J. van der Laan
  2015-06-18 12:29     ` Pieter Wuille

  2015-06-18 13:31     ` Mike Hearn
  
From: Milly Bitcoin @ 2015-06-18 12:38 UTC (permalink / raw)
  To: Wladimir J. van der Laan, Mike Hearn;  Bitcoin Dev

What is immediately clear to anyone who looks at Bitcoin software 
development is that there is no clear process or method to make 
changes/updates to the software.  When I have questioned this in the 
past the response is usually some cultish answer about how some kind of 
technical consensus is reached yet nobody can point to an actual 
process.  If companies are expected to dedicate resources to adopt 
Bitcoin there needs to be some type of process spelled out that can give 
these entities at least minimal assurance that there is some type of 
process in place.  I think the whole process is based on how certain 
personalities handle issues but as those personalities change the system 
changes in unknown ways which equates to risk.

The other thing that is immediately clear is that there is no systems 
engineering process in place to make changes.  A "risk study" was done 
by the Bitcoin Foundation but that is only the first baby step in the 
process.  It works by defining a set of risks, likelihood, mitigations, 
etc.  and a risk matrix and maintaining those as living documents.   
When changes are proposed alternative scenarios are created and they are 
measured against the baseline of what there is now.  Standard test plans 
are created to measure the changes against defined metrics.  It is a lot 
of work to define those risks to the level of detail needed for work 
like this.  However, the amount of time/energy saved in the end is 
tremendous.   Right now the process is haphazard at best with people 
posting random tweets, Reddit posts, blog posts, etc.  All this drama 
makes Bitcoin look somewhat amateurish and rather risky.

http://www.dtic.mil/ndia/2004cmmi/CMMIT1Mon/Track1IntrotoSystemsEngineering/KISE09RiskManagementv2.pdf

https://bitcoinfoundation.org/wp-content/uploads/2014/04/Bitcoin-Risk-Management-Study-Spring-2014.pdf

Some people also seems to conflates the notion of decentralization of 
the state of the ledger by mining/nodes with that of decentralization of 
open source software by forking the software. These are very different 
problems and I don't think it is possible (or even desirable) to achieve 
the same level of decentralization for both things.  In any case 
"decentralization" for the state of the blockchain is only an 
approximation anyway since there are things like 51% attacks and 
checkpoints.

Russ




On 6/18/2015 7:14 AM, Wladimir J. van der Laan wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> On Thu, Jun 18, 2015 at 12:00:17PM +0200, Mike Hearn wrote:
>
>> Core is in the weird position where there's no decision making ability at
>> all, because anyone who shows up and shouts enough can generate
>> 'controversy', then Wladimir sees there is disagreement and won't touch the
>> issue in question. So it just runs and runs and *anyone* with commit access
>> can then block any change.
> Bitcoin Core is completely different from your average open source project in one aspect: where it concerns consensus.
>
> Like in any open source project there is lots of decision making ability for code changes. I'd say look at the changelog for e.g. 0.11 https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log, or follow pull requests for a while, to see how many decisions about changes are made from day to day. No, I'm not sitting on my hands, and so is none of the other contributors that you'd like to get rid of.
>
> Consensus changes are *much* more difficult, on the other hand. Even relatively straightforward softforks come with a long discussion process (see BIP62, BIP66). A hardfork is hard to do at the best of times (everyone needs to upgrade their software!), and simply not possible if almost the entire technical community disagrees with you.
>
> Bitcoin is supposed to be a robust, global, decentralized network beyond anyone's control. It makes *no sense* to try to run it as a dictatorship. This would create a handy central position where power can be applied, pushing through changes to the behavior of the system, either by force or other ways of motivation. I refuse to take part in that.
>
> Hence, anything that is controversial needs to be considered really carefully. If I suddenly start making changes to the consensus code without full agreement, by all means take away my commit privileges.
>
> (a major reason for the ongoing libconsensus work is to separate "Bitcoin Core, the node software" and "The Bitcoin Consensus" along clear lines, to avoid this kind of nasty confusion)
>
> Wladimir
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
>
> iQEcBAEBCgAGBQJVgqfOAAoJEHSBCwEjRsmmFT8H/Rkm29AhLhT8R1Vx8oKUIzID
> +NB7tOps3lIilkDQIC5zHSknx5iugrrAdRf1w7qPj/o8+xhCZw9ruu8eIq+djkRQ
> tvzbHil2pqgT3VHriRlY4lvlmu2NmBcYrAuX9sDhUHBo6cwGajfKMJPfE0haK3K4
> 7EmfdGXJYJmiBnhE6ikOiU687M2WgsmIGrBDIxeA5wYwVK9Ph8hfcbuj7AHvIMI9
> ZNU/V6uhcTjn5wT+6DHGIOxHipYHyAwKb7jKho0XkM6Yi4ORe1mxF5HDtqA0ztta
> mZPNjNrt/ngK20xRbqkb0GtxoyZq38ZF3Bq1gaWl2v9MBBMD5ZxQAvgCNUQFEo0=
> =W26K
> -----END PGP SIGNATURE-----
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>





 permalink raw reply	[|nested]
* 
  2015-06-18 11:14   ` Wladimir J. van der Laan
  2015-06-18 11:47     ` Wladimir J. van der Laan

  2015-06-18 12:50       ` 
                         ` 
  2015-06-18 12:38     ` Milly Bitcoin
  2015-06-18 13:31     ` Mike Hearn
  3 siblings, 3 replies; 60+ messages in thread
From: Pieter Wuille @ 2015-06-18 12:29 UTC (permalink / raw)
  To: Wladimir J. van der Laan;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 4122 bytes --]

On Thu, Jun 18, 2015 at 1:14 PM, Wladimir J. van der Laan <laanwj@gmail•com>
wrote:

> Like in any open source project there is lots of decision making ability
> for code changes. I'd say look at the changelog for e.g. 0.11
> https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log,
> or follow pull requests for a while, to see how many decisions about
> changes are made from day to day. No, I'm not sitting on my hands, and so
> is none of the other contributors that you'd like to get rid of.
>

The analogy goes further even. Even though I disagree with some of the
changes you're making, I respect Mike's (and anyone's) right to make a fork
of Bitcoin Core. That's how open source works: if people disagree with
changes made or not made, they can maintain their own version. However:


> Consensus changes are *much* more difficult, on the other hand. Even
> relatively straightforward softforks come with a long discussion process
> (see BIP62, BIP66). A hardfork is hard to do at the best of times (everyone
> needs to upgrade their software!), and simply not possible if almost the
> entire technical community disagrees with you.
>

Consensus changes - in particular hardforks - are not about making a change
to the software. You are effectively asking users of the system to migrate
to a new system. Perhaps one which is a philosophical successor to the old
one, but a different system, with new rules that are incompatible with the
old one.

I believe this is something that can only be done if there is no
controversy about the change, for different reasons:

* Risk: no matter how you determine the switchover date, there is no way of
knowing when (and whether at all) everyone changes their full nodes (and
perhaps other software), and even very high hash power votes cannot prevent
an actual fork from appearing afterwards. At best, people lose the
guarantee that their confirmations are meaningful (because at some point it
becomes clear that the other side will get adopted, and they need to
switch). At worst, a fork persists, and two partitions appear, in each of
which you can spend every pre-existing coin. This defeats the primary
purpose Bitcoin was designed for: double spend protection.

* Philosophy: Bitcoin is not a democracy. The full node security model is
designed to minimize trust in other parties in the system. This works by
validating as much as possible according to the consensus rules. In
particular, there is no "majority vote" that can override things (contrary
to what some people think, it is not "longest chain wins, and a majority of
miners decide"; even a majority of miners cannot steal your coins or
produce more than the allowed subsidy, unless they convince others to
change their software). Changing the rules should be possible if there is
wide consensus, but nobody should feel forced to change their code against
their will.

* Governance: being able to push for a controversial change to the system
sets an incredibly dangerous precedent about who is in charge of the
system's rules. What if next time it is a change demanded by parties with
less good intentions (and yes, I believe people in this discussions all
have good intentions to improve the system in a way they think is most
useful)? I can promise you that I will say anything in mail to this list if
someone points a gun at me, and I think you should make the same assumption
about other people here. By avoiding controversial changes, you avoid
external and potentially invisible manipulation.

Of course, sometimes changes to the consensus rules may be wanted. The
presence of a bug is a good reason, and widespread agreement about one of
the system's limitation is too. As I said before, I think technological
growth in network bandwidth, processing power, and storage, are a good
reason why the system should be able to scale proportionally. I think there
are good technical and economic reasons why we should be cautious about
this, but the primary requirement is consensus, and aligning people's
expectation about what they can expect from network's evolution.

-- 
Pieter

[-- Attachment #2: Type: text/html, Size: 4873 bytes --]

^ permalink raw reply	[|nested] 60+ messages in thread
2015-06-18 12:50       ` Wladimir J. van der Laan

  
From: Benjamin @ 2015-06-18 12:56 UTC (permalink / raw)
  To: Wladimir J. van der Laan;  Bitcoin Dev

"And I never had a problem with Bitcoin-XT while it was just a
patch-set with no consensus changes. But a controversial hard fork of
the chain is something else completely."

How is that different? The only difference is in who makes the fork
and if that group has a chance of actually splitting/overriding the
network. So Mike and Gavin are using the trust and relationship they
have garnered through Bitcoin for their purposes (malicious or not).
There are only 20-30 people with the same kind of recognition who
would be able to do that. M&G already wanted to make a fork in 2014
for entirely different reasons (http://pastebin.com/3kt5Reeh).

On Thu, Jun 18, 2015 at 2:50 PM, Wladimir J. van der Laan
<laanwj@gmail•com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> On Thu, Jun 18, 2015 at 02:29:42PM +0200, Pieter Wuille wrote:
>> On Thu, Jun 18, 2015 at 1:14 PM, Wladimir J. van der Laan <laanwj@gmail•com>
>> wrote:
>>
>> > Like in any open source project there is lots of decision making ability
>> > for code changes. I'd say look at the changelog for e.g. 0.11
>> > https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log,
>> > or follow pull requests for a while, to see how many decisions about
>> > changes are made from day to day. No, I'm not sitting on my hands, and so
>> > is none of the other contributors that you'd like to get rid of.
>> >
>>
>> The analogy goes further even. Even though I disagree with some of the
>> changes you're making, I respect Mike's (and anyone's) right to make a fork
>> of Bitcoin Core. That's how open source works: if people disagree with
>> changes made or not made, they can maintain their own version. However:
>
> Sure. According to github, there exist 4890 forks of the bitcoin/bitcoin repository.
>
> Forking the code is perfectly fine in itself, that doesn't even need to be said, it's how open source works. Make your changes, run your own version, contribute back the changes (or not).
>
> And I never had a problem with Bitcoin-XT while it was just a patch-set with no consensus changes. But a controversial hard fork of the chain is something else completely.
>
> Wladimir
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
>
> iQEcBAEBCgAGBQJVgr5LAAoJEHSBCwEjRsmm5mMH/0yLGGQQefRVdmM/nJZ60b/z
> iTCUUzY4eLL67FRC6pqGA18RdUt4Etl4wEqvgXH/B9mWIAM2yQD/jnxutYrEIoBT
> 8Jyd1OhmmKF8MN5/uE7JNPivIuHs0ioF+qTxlbdElpVZ2NodVotznbTvuqJgXUFb
> c9Et5L5n7g55uPzDt+MSV5iBDJaMiBAnZA00aTLGmYmNXxcy7xBwCFX3dDij8krv
> 0+zdpNNAKm85k1rG2jHCM+0onu+TOIur03pPd5OZktgr18P6UvAQ6A59yAkGgFai
> 4l6VVNJ40g3PzItGQ7wsKZ8s/qG5LlcEppxMlG6CX1dIDpxbrwx2aJmeNjwSLKQ=
> =LbA3
> -----END PGP SIGNATURE-----
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development



 permalink raw reply	[|nested]
2015-06-18 11:14   ` Wladimir J. van der Laan
                       ` (2 preceding siblings ...)
  2015-06-18 12:38     ` Milly Bitcoin

  2015-06-18 13:50       ` Pieter Wuille
  2015-06-18 15:03       ` Mark Friedenbach
  
From: Mike Hearn @ 2015-06-18 13:31 UTC (permalink / raw)
  To: Wladimir J. van der Laan;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 3388 bytes --]

OK, let's agree to unpack the two things.

The first issue is how are decisions made in Bitcoin Core? I struggle to
explain this to others because I don't understand it myself. Is it a vote
of people with commit access? Is it a 100% agreement of "core developers"
and if so, who are these people? Is it "whoever reverts the change last"?
Could I write down in a document a precise description of how decisions are
made? No, and that's been a fairly frustrating problem for a long time.

But let's leave it to one side for a moment.

Let's focus on the other issue:   what happens if the Bitcoin Core decision
making process goes wrong?

For the sake of argument let's pretend we're discussing a different change,
let's imagine there is a proposal to change the block format to include a
Widget, where a Widget is some potentially desirable thing. And this change
means a hard fork. Let's put the block size to one side for a second to
avoid getting distracted.

Imagine that 90% of people in Bitcoin want their Widgets, but one of your
committers refuses to accept it.  I am not saying the block size debate has
such proportions but pretend Widgets do.

What is the process for resolving this problem?

Gavin and I say - there is a process, and that process is a hard fork of
the block chain.

What you're saying is - there is no process because a contentious hard fork
must never happen. Such a change is simply impossible.

Now which is a better description of this situation? Is the "it must never
happen end of story" really the cuddly warm democracy that you seem to
suggest? Or is it more like a dictatorship where the opinions of one or two
people can override all the others?

The typical answer I'm seeing to this is that Bitcoin Core's own decision
making process is so fantastic that it never goes wrong, even though
"consensus" is not defined and "technical majority" is not defined and we
have serious long time contributors on this mailing list (such as wallet
developers) disagreeing with this consensus yet our feedback is being
ignored.

You guys *must* accept that your preferred process for resolving disputes
is, itself, in dispute. That leaves the block chain itself as the only
remaining method for bringing this saga to a close.

So this is why we keep disagreeing:

   - If Bitcoin Core has reached a formal decision made by the maintainer
   via whatever mechanism he likes to not accept the block size increase, then
   alright, technical disputes will happen. But ....

   - You should agree that the next step is a fork of both the software and
   the block chain. And you should welcome such a thing because it is the ONLY
   check on your own power. It's the one thing that allows the community to
   reject the decision making process you are using in case it goes wrong.

I keep reading that Bitcoin cannot survive a hard fork. Well, we've
survived an accidental fork that happened without anyone being prepared,
and even with a planned soft fork "never upgrade" isn't really an option
for either miners or businesses, so ultimately node operators must know
about upgrades and make them. Both myself and Gavin think this process can
work out OK.

Do you at least understand where we're coming from here, even if you
disagree? And if you disagree, is it because you think a hard fork to
resolve a dispute can't work technically, or is it some other reason?

[-- Attachment #2: Type: text/html, Size: 3962 bytes --]

 permalink raw reply	[|nested]
2015-06-18 11:47     ` Wladimir J. van der Laan

  2015-06-18 15:58         ` Gregory Maxwell
  
From: Mike Hearn @ 2015-06-18 13:36 UTC (permalink / raw)
  To: Wladimir J. van der Laan;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 336 bytes --]

>
> And allegations that the project is "run like wikipedia" or "an edit war"
> are verifyably untrue.
> Check the commit history.
>

This was a reference to a post by Gregory on Reddit where he said if Gavin
were to do a pull request for the block size change and then merge it, he
would revert it. And I fully believe he would do so!

[-- Attachment #2: Type: text/html, Size: 578 bytes --]

 permalink raw reply	[|nested]
2015-06-18 12:29     ` Pieter Wuille
  2015-06-18 12:50       ` Wladimir J. van der Laan

  2015-06-18 14:05         ` Wladimir J. van der Laan
  2015-06-18 14:53       ` Jeff Garzik
  
From: Mike Hearn @ 2015-06-18 13:49 UTC (permalink / raw)
  To: Pieter Wuille;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 4098 bytes --]

Hi Pieter,

I believe Gavin plans to write a blog post about the hard fork process, but
I'd like to debate this with you now, if only to give him material to work
with :)

Your points look to me like the hard/soft fork debate in different clothes.

For example, we all agree that the rules of Bitcoin *can* be changed, and
have been before (e.g. P2SH), with software upgrades.

When such a fork happens, any user who does not upgrade their node isn't
fully verifying the block chain anymore. Their software might *think* it
is, but it's running NOPs that don't mean NOP to other nodes. So there is a
divergence in the consensus, it's merely been done in such a way that the
node won't stop and print "hard fork detected" to the logs. It'll happily
accept a block that violates the new rules, then wait to be corrected by
miners.

So with any fork, hard or soft, there is risk to those who don't upgrade.
They may accept a block, or even two blocks, that they believe are valid
according to their old rule set, but which other miners would reject. The
effect on double spending is much the same.

Now let's talk philosophy.

* Philosophy: Bitcoin is not a democracy.
>

This appears to be a key point of dispute. Bitcoin is a democracy, though
the analogy is not perfect. You can certainly believe whatever you like
about the true state of the ledger, but rubber hits the road the moment you
go and trade with other people.

If 90% of the people you trade with believe a coin exists, and you don't,
you're gonna discover you keep getting paid with that coin and its
descendents. You may hate it, you may feel your rights are being violated,
you may refuse to trade with those people but it will keep happening.

Money is about trade, and trade inherently involves the decisions of other
people. No man is an island.

With Bitcoin we have a great way to quickly find out what other people
believe about the ledger. If the vast majority of people are on ledger A
and you're on ledger B, then you've got a strong incentive to come into
line with the majority in order to keep trading.


> Changing the rules should be possible if there is wide consensus, but
> nobody should feel forced to change their code against their will.
>

Nobody, not even after a hard fork, is *forced* to change their code
against their will. It may be something that *other people require* as part
of trading with them though. Whether one considers this "forced" or not I
guess can be argued either way. Are you "forced" to buy oranges from the
single orange seller in town if the other goes bankrupt, or could you just
avoid oranges? Where does economic freedom begin and end?


> * Governance: being able to push for a controversial change to the system
> sets an incredibly dangerous precedent about who is in charge of the
> system's rules.
>

I think it's surely the opposite - *not* being able to push for
controversial changes sets an incredibly dangerous precedent. Namely,
whoever gets to decide that a change is controversial gets to veto anything
they like!


> I can promise you that I will say anything in mail to this list if someone
> points a gun at me
>

Indeed, me too! But it's worse than that: what if someone sockpuppets a
discussion to make it look like a change does or does not have consensus?

One reason I keep banging on about *process* and how Wladimir needs to be
The Decider is that the current attempt at "process" is so vague, not only
is it unexplainable, but it's wide open to manipulation.

Good thing we have a way to resolve this problem:  the block chain. Now it
doesn't matter if someone points a gun at you or me. We can object to
whatever we like and that wouldn't bring Bitcoin to a halt, thus removing
the incentive to try and pressure individuals.

But if we don't have that ability to vote through choice of software and
rulesets, then us poor developers really are in charge and that's not a
place any of us should want to go. There must be a mechanism for people to
disagree with the consensus, even in major, controversial ways, and that
mechanism must have real force to it.

[-- Attachment #2: Type: text/html, Size: 5604 bytes --]

 permalink raw reply	[|nested]
2015-06-18 13:31     ` Mike Hearn

  2015-06-18 15:03       ` Mark Friedenbach
  
From: Pieter Wuille @ 2015-06-18 13:50 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1966 bytes --]

On Thu, Jun 18, 2015 at 3:31 PM, Mike Hearn <mike@plan99•net> wrote:

> OK, let's agree to unpack the two things.
>
> The first issue is how are decisions made in Bitcoin Core? I struggle to
> explain this to others because I don't understand it myself. Is it a vote
> of people with commit access? Is it a 100% agreement of "core developers"
> and if so, who are these people? Is it "whoever reverts the change last"?
> Could I write down in a document a precise description of how decisions are
> made? No, and that's been a fairly frustrating problem for a long time.
>
> But let's leave it to one side for a moment.
>
> Let's focus on the other issue:   what happens if the Bitcoin Core
> decision making process goes wrong?
>

Why do you keep talking about Bitcoin Core maintainers? The means for doing
a hard fork is convincing the network to run modified code, whether that is
a new version of Bitcoin Core or a fork of it, or something else entirely.

If I see consensus about a proposed network change, I will be in favor of
implementing it in Bitcoin Core. But we're not at that point. There is no
network change proposed with consensus. There is not even a patch to be
discussed. There are working proposals, and people are talking about them.
This is good.

I think maintainers of particular software should not be, and are not those
who decide the network's rules. People running the code are. Of course
maintainers have a large influence, but so do other people - like you.

> This was a reference to a post by Gregory on Reddit where he said if
Gavin were to do a pull request for the block size change and then merge
it, he would revert it. And I fully believe he would do so!

I believe so too, and I would do the same. Because I believe implementing a
consensus rule change without having very good expectations that the
network will adopt it, is reckless from the point of view of maintainers,
for all reasons I have mentioned before.

-- 
Pieter

[-- Attachment #2: Type: text/html, Size: 2589 bytes --]

 permalink raw reply	[|nested]
2015-06-18 13:49       ` Mike Hearn

  2015-06-18 14:16           ` Mike Hearn
  2015-06-18 14:53           ` Milly Bitcoin
  
From: Wladimir J. van der Laan @ 2015-06-18 14:05 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Thu, Jun 18, 2015 at 03:49:06PM +0200, Mike Hearn wrote:
> One reason I keep banging on about *process* and how Wladimir needs to be
> The Decider is that the current attempt at "process" is so vague, not only
> is it unexplainable, but it's wide open to manipulation.

It looks as if you entirely missed my point. I'm The Decider for *code issues* regarding Bitcoin Core. Consensus issues should not be considered part of that, they span multiple implementations.

So I'm *not* the decider for anything that concerns the behavior of the global consensus, and I cannot be, as I have explained in the previous post, and as Sipa explained in his.

Speaking of process, let me remind you that there is a BIP processs: https://github.com/bitcoin/bips/blob/master/bip-0001.mediawiki 

If you think it's not clear enough, which may explain why you did not even attempt to follow it for your block size increase, feel free to make improvements.

Wladimir
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCgAGBQJVgtAOAAoJEHSBCwEjRsmmLPUH/1ug5pvLz6ptIhvuROclV7Jh
z0Szk5FOqfg4ejT3nYV5LRV5WNHUGDdFnHZJRFsKYH9B0LFgOlnkc488Qg6hBb+1
rf5zEF/D2X4MhPIx6GqI++gvhDzdBH2t9yxbU7LVZALo7+wtW+ms5eHHFs8WrU0z
m7NgiZRen4cpQUiBWHlt0PojmXBVZQNU0CD6ErcOpQXhN8J0sb0l0DuFswQgUqxk
rrNe3LvKp89xT0kDxyzQts/CeIG/8kQYLwIJ1QQDXvYayj2aHHYMkSEWfDlew3IC
zQkFgHCTGihGHPFeow+dnuW1DI1l92yPYNDLbxivSam3X+qCAGzUTOWTFE+iprk=
=tE4K
-----END PGP SIGNATURE-----



 permalink raw reply	[|nested]
2015-06-18 14:05         ` Wladimir J. van der Laan

  2015-06-18 14:53           ` Milly Bitcoin
  
From: Mike Hearn @ 2015-06-18 14:16 UTC (permalink / raw)
  To: Wladimir J. van der Laan;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 2172 bytes --]

>
> If you think it's not clear enough, which may explain why you did not even
> attempt to follow it for your block size increase, feel free to make
> improvements.
>

As the outcome of a block size BIP would be a code change to Bitcoin Core,
I cannot make improvements, only ask for them. Which is what I'm doing.

I agree that BIP 1 is not clear enough. Gavin is writing a BIP to accompany
his patch, because BIPs are best when they describe working code, and BIP 1
*is* at least clear about that. Otherwise it can turn out during
implementation that something was different to what was anticipated. I'm
sure you agree with this.

So a BIP is coming. However, BIP 1 also says this:

Vetting an idea publicly before going as far as writing a BIP is meant to
> save the potential author time


and

BIP authors are responsible for collecting community feedback on a BIP
> before submitting it for review


OK. Gavin has been vetting the idea publicly and collecting community
feedback. Note that the entire Bitcoin community is not on this list, so he
published a series of blog posts to get wider feedback, and then was
criticised for not doing it all here instead.

But anyway - so far, so good.  The procedure is being followed.

What happens once a BIP is written? The process says:

For a BIP to be accepted it must meet certain minimum criteria. It must be
> a clear and complete description of the proposed enhancement. The
> enhancement must represent a net improvement. The proposed implementation,
> if applicable, must be solid and must not complicate the protocol unduly.



>  Once a BIP has been accepted, the reference implementation must be
> completed.


This is where the problem starts.

The BIP process you refer to *does not state how acceptance will happen*.
It merely sets out a few minimum requirements like making some sort of
sense, having code. It's also full of extremely vague descriptions like
"must represent a net improvement". Improvement according to who? That's
left unexplained.

And then it says what happens once a BIP is accepted.

The middle bit is missing. When there is disagreement over a consensus BIP,
how are decisions made?

[-- Attachment #2: Type: text/html, Size: 4494 bytes --]

 permalink raw reply	[|nested]
* 
  2015-06-18 10:00 ` Mike Hearn
  2015-06-18 11:14   ` Wladimir J. van der Laan

  2015-06-18 14:33   ` 
                     ` 
  4 siblings, 0 replies; 60+ messages in thread
From: Lawrence Nahum @ 2015-06-18 11:41 UTC (permalink / raw)
  To: bitcoin-development

Mike Hearn <mike <at> plan99.net> writes:

> It's the only way to keep a project making progress at a reasonable pace.
[SNIP]

If Bitcoin is managed with a linux kernel style dictator it would be 
centralized (yet unlike linux, where people can fork without impacting others 
in Bitcoin a hard fork puts at risks everyone's bitcoins) - I hope we all 
agree there is no point in a centralized Bitcoin?

In addition and more importantly, it would put Gavin in tremendous dangers, 
both from violent threats/blackmailing prospective as well as regulatory 
prospective - how can you not see that?

I hope all this confrontation will be worth something in the end: to show 
that Bitcoin can't be changed centrally and that it can't be changed without 
consensus




^ permalink raw reply	[|nested] 60+ messages in thread
2015-06-18 14:05         ` Wladimir J. van der Laan
  2015-06-18 14:16           ` Mike Hearn

  2015-06-18 14:56             ` Jeff Garzik
  
From: Milly Bitcoin @ 2015-06-18 14:53 UTC (permalink / raw)
  To: Bitcoin Dev

 >So I'm *not* the decider for anything that concerns the behavior of 
the global consensus, and I cannot be, as I have explained in the 
previous post.

The person who decides if a pull request is accepted is a decider and 
significantly affects the behavior of the global consensus.  The only 
option for someone who doesn't agree is to hard fork.  There is no way 
around that and you should just accept that fact and move on.

Russ




 permalink raw reply	[|nested]
2015-06-18 12:29     ` Pieter Wuille
  2015-06-18 12:50       ` Wladimir J. van der Laan
  2015-06-18 13:49       ` Mike Hearn

  2015-06-18 16:07         ` justusranvier
  
From: Jeff Garzik @ 2015-06-18 14:53 UTC (permalink / raw)
  To: Pieter Wuille;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 2015 bytes --]

On Thu, Jun 18, 2015 at 8:29 AM, Pieter Wuille <pieter.wuille@gmail•com>
wrote:

> On Thu, Jun 18, 2015 at 1:14 PM, Wladimir J. van der Laan <
> laanwj@gmail•com> wrote:
>
>> Like in any open source project there is lots of decision making ability
>> for code changes. I'd say look at the changelog for e.g. 0.11
>> https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log,
>> or follow pull requests for a while, to see how many decisions about
>> changes are made from day to day. No, I'm not sitting on my hands, and so
>> is none of the other contributors that you'd like to get rid of.
>>
>
> The analogy goes further even. Even though I disagree with some of the
> changes you're making, I respect Mike's (and anyone's) right to make a fork
> of Bitcoin Core. That's how open source works: if people disagree with
> changes made or not made, they can maintain their own version. However:
>
>
>> Consensus changes are *much* more difficult, on the other hand. Even
>> relatively straightforward softforks come with a long discussion process
>> (see BIP62, BIP66). A hardfork is hard to do at the best of times (everyone
>> needs to upgrade their software!), and simply not possible if almost the
>> entire technical community disagrees with you.
>>
>
> Consensus changes - in particular hardforks - are not about making a
> change to the software. You are effectively asking users of the system to
> migrate to a new system. Perhaps one which is a philosophical successor to
> the old one, but a different system, with new rules that are incompatible
> with the old one.
>

Indeed.  I think Mike is glossing over this major facet.

Consensus changes - worded another way - change Bitcoin's Constitution -
The Rules that everyone in the system is -forced- to follow, or be ignored
by the system.

Changing bitcoin's rules IS IN NO WAY like Wikipedia or other open source
software.

-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.      https://bitpay.com/

[-- Attachment #2: Type: text/html, Size: 3131 bytes --]

 permalink raw reply	[|nested]
2015-06-18 14:53           ` Milly Bitcoin

  2015-06-18 15:13               ` Milly Bitcoin
  
From: Jeff Garzik @ 2015-06-18 14:56 UTC (permalink / raw)
  To: Milly Bitcoin;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 881 bytes --]

On Thu, Jun 18, 2015 at 10:53 AM, Milly Bitcoin <milly@bitcoins•info> wrote:

>  >So I'm *not* the decider for anything that concerns the behavior of
> the global consensus, and I cannot be, as I have explained in the
> previous post.
>
> The person who decides if a pull request is accepted is a decider and
> significantly affects the behavior of the global consensus.  The only
> option for someone who doesn't agree is to hard fork.  There is no way
> around that and you should just accept that fact and move on.
>

Impacts, yes, decider, no.  Multiple ACKs are required from developers who
will not act if the community will disagree with the change.

The users ultimately choose by deciding which software to download, and
that dictates the range of choices available.

-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.      https://bitpay.com/

[-- Attachment #2: Type: text/html, Size: 1423 bytes --]

 permalink raw reply	[|nested]
2015-06-18 13:31     ` Mike Hearn
  2015-06-18 13:50       ` Pieter Wuille

  2015-06-18 15:30         ` Milly Bitcoin
  
From: Mark Friedenbach @ 2015-06-18 15:03 UTC (permalink / raw)
  To: Mike Hearn, Bitcoin Development

[-- Attachment #1: Type: text/plain, Size: 1562 bytes --]

On Thu, Jun 18, 2015 at 6:31 AM, Mike Hearn <mike@plan99•net> wrote:

> The first issue is how are decisions made in Bitcoin Core? I struggle to
> explain this to others because I don't understand it myself. Is it a vote
> of people with commit access? Is it a 100% agreement of "core developers"
> and if so, who are these people? Is it "whoever reverts the change last"?
> Could I write down in a document a precise description of how decisions are
> made? No, and that's been a fairly frustrating problem for a long time.
>

There is a quote from United States Supreme Court Justice Potter Stewart to
describe his threshold test for obscenity which is relevant here: "I know
it when I see it."

It is hard certainly, and perhaps even impossible to write down a system of
rules that is used to resolve every dispute among core developers. But that
doesn't mean it isn't obvious to all the participants what is going on. If
a contentious change is proposed, and if after sufficient debate there are
still members of the technical community with reasoned, comprehensible
objections who are not merely being obstinate in the views -- a neutral
observer would agree that their concerns have not been met -- then there is
a lack of consensus.

If there was some sort of formal process however, the system wouldn't work.
Rules can be gamed, and if you add rules to a process then that process can
be gamed. Instead we all have a reasonable understanding of what "technical
consensus" is, and we all know it when we see it. Where we do not see it,
we do not proceed.

[-- Attachment #2: Type: text/html, Size: 2050 bytes --]

 permalink raw reply	[|nested]
2015-06-18 14:56             ` Jeff Garzik

  
From: Milly Bitcoin @ 2015-06-18 15:13 UTC (permalink / raw)
  To: Bitcoin Dev

 >Impacts, yes, decider, no.  Multiple ACKs are required from developers 
who will not act if the community will disagree with the change.

 >The users ultimately choose by deciding which software to download, 
and that dictates the range of choices available.

That is what I mean by a cultish reply.  Just saying the users 
ultimately decide is not an adequate explanation of the situation. You 
are talking hard fork if someone doesn't like it.  If 10% of the users 
don't like there is nothing they can do unless they want to operate an 
altcoin.  You are not going to resolve anything by repeating these types 
of replies that really have no applicability in the real world.  The 
person who approves the pull request (no matter what the process is 
beforehand) is effectively the decider.

Also, as pointed out, there is no real process in place.   Making 
offhand statements that "multiple ACKs are required" without describing 
a real process just sends people down a rat hole like this block size 
debate.  Providing these (non) answers instead of developing a real 
process is why there is so much contention now.

Russ




 permalink raw reply	[|nested]
2015-06-18 15:03       ` Mark Friedenbach

  2015-06-18 15:46           ` Wladimir J. van der Laan
  
From: Milly Bitcoin @ 2015-06-18 15:30 UTC (permalink / raw)
  To: bitcoin-development

[-- Attachment #1: Type: text/plain, Size: 2727 bytes --]

On 6/18/2015 11:03 AM, Mark Friedenbach wrote:
> On Thu, Jun 18, 2015 at 6:31 AM, Mike Hearn <mike@plan99•net 
> <mailto:mike@plan99•net>> wrote:
>
>     The first issue is how are decisions made in Bitcoin Core? I
>     struggle to explain this to others because I don't understand it
>     myself. Is it a vote of people with commit access? Is it a 100%
>     agreement of "core developers" and if so, who are these people? Is
>     it "whoever reverts the change last"?  Could I write down in a
>     document a precise description of how decisions are made? No, and
>     that's been a fairly frustrating problem for a long time.
>
>
> There is a quote from United States Supreme Court Justice Potter 
> Stewart to describe his threshold test for obscenity which is relevant 
> here: "I know it when I see it."
>
> It is hard certainly, and perhaps even impossible to write down a 
> system of rules that is used to resolve every dispute among core 
> developers. But that doesn't mean it isn't obvious to all the 
> participants what is going on. If a contentious change is proposed, 
> and if after sufficient debate there are still members of the 
> technical community with reasoned, comprehensible objections who are 
> not merely being obstinate in the views -- a neutral observer would 
> agree that their concerns have not been met -- then there is a lack of 
> consensus.
>
> If there was some sort of formal process however, the system wouldn't 
> work. Rules can be gamed, and if you add rules to a process then that 
> process can be gamed. Instead we all have a reasonable understanding 
> of what "technical consensus" is, and we all know it when we see it. 
> Where we do not see it, we do not proceed.
>

There is always a process.  Right now the process is haphazard, unclear, 
and constantly changing without being written down so people don't 
actually know what it is.  In fact you do not all have a reasonable 
understanding of "technical consensus" because if you did then you could 
write it down ... but you can't.   The current process is being gamed by 
people making tweets, reddit posts, videos, and blog posts.  A more 
formalized process would channel that activity into a a more usable format.

This kind of thing always happens as projects become larger and more 
diverse.  Something that was once a small group turns into a big group 
of diverse stakeholders.  When it gets too big for the informal 
processes then some people get upset and defensive. Happens all the time 
but it is not really a good excuse to keep doing things in an 
inefficient manner.  The old ways just don't scale and if you ever 
worked on massive projects then you know these formal processes work better.

Russ



[-- Attachment #2: Type: text/html, Size: 4319 bytes --]

 permalink raw reply	[|nested]
2015-06-18 15:30         ` Milly Bitcoin

  2015-06-18 16:05             ` Mike Hearn
  2015-06-18 16:11             ` Milly Bitcoin
  
From: Wladimir J. van der Laan @ 2015-06-18 15:46 UTC (permalink / raw)
  To: Milly Bitcoin, g;  bitcoin-development

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


> This kind of thing always happens as projects become larger and more
> diverse.  Something that was once a small group turns into a big
> group of diverse stakeholders.  When it gets too big for the
> informal processes then some people get upset and defensive. Happens
> all the time but it is not really a good excuse to keep doing things
> in an inefficient manner.  The old ways just don't scale and if you
> ever worked on massive projects then you know these formal processes
> work better.

So then: make a proposal for a better process, post it to this list.

In practice there has been zero interest in improving the BIP process.

E.g. the BIP process was adapted from the Python Enhancement Proposals by Amir Taaki (in 2009 or so?). It hasn't really changed since then, apart from some spelling and grammar corrections. It is not specifically adapted to Bitcoin, and doesn't make a distinction between for example, consensus changes and non-consensus changes.

So that's up to someone to do. You seem to be enthousiastic about it, so go ahead.

Wladimir
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCgAGBQJVgufFAAoJEHSBCwEjRsmmAmYIAI9ndrMoqEuoaP5t+7W42UuH
sh5qR7hojCCoZZl1N+rQ63UXcPBO/V4NUkUG97S3qpEFDzuoYSbOX2Eh+TRfK+s+
U+BpLhWteSexJ3N9aiFuR0q5jgesAzLZ9wtq1gCPI/Zu5/fgYBP4AVTiQGdXCZtv
m6ZDKCf+aB/fW/59/AiY44NkMDjVQieEVRiT1IPFJULWesOOdtv7UoqIpz0vDa/5
Jplm41j8IpTPioJKSwUi5qzSDrF7O39PC9LMXNRx/0FIuYfwqJpvF0Frc+vtPpjQ
llKE7945uMXz3FLSV0Orx26XPal/MuF5AYOPNk6pJfwYw7q91AUvQxVFepBa9vw=
=dMO9
-----END PGP SIGNATURE-----



 permalink raw reply	[|nested]
2015-06-18 13:36       ` Mike Hearn

  
From: Gregory Maxwell @ 2015-06-18 15:58 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

On Thu, Jun 18, 2015 at 1:36 PM, Mike Hearn <mike@plan99•net> wrote:
>> And allegations that the project is "run like wikipedia" or "an edit war"
>> are verifyably untrue.
>> Check the commit history.
>
> This was a reference to a post by Gregory on Reddit where he said if Gavin
> were to do a pull request for the block size change and then merge it, he
> would revert it. And I fully believe he would do so!

http://www.reddit.com/r/Bitcoin/comments/37pv74/gavin_andresen_moves_ahead_with_push_for_bigger/croxw9o?context=1

This is the only reddit comment I've made using the word revert in
recent memory, so I know you couldn't be referring to another.

>> I was recently in a situation similar to what Gavin is in insofar as a design dispute that could improperly solved by a git push. I'm pretty impressed he hasn't given in and done a midnight push. It's cool to see him back channeling support.
> Such a change would be immediately reverted.

And, I probably should have continued "and resulted with an immediate
revocation of commit rights on the assumption that his account had
been compromised."

There is nothing controversial about that.



 permalink raw reply	[|nested]
2015-06-18 15:46           ` Wladimir J. van der Laan

  2015-06-18 16:20               ` Wladimir J. van der Laan
  2015-06-18 22:49               ` odinn
  2015-06-18 16:11             ` Milly Bitcoin
  
From: Mike Hearn @ 2015-06-18 16:05 UTC (permalink / raw)
  To: Wladimir J. van der Laan;  g, Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 2200 bytes --]

>
> So then: make a proposal for a better process, post it to this list.
>

Alright. Here is a first cut of my proposal. It can be inserted into an
amended BIP 1 after "What belongs in a successful BIP?". Let me know what
you think.



The following section applies to BIPs that affect the block chain consensus
rules or the peer to peer protocol and thus require changes to Bitcoin
Core.

Once a draft BIP has been submitted to bitcoin-development for
consideration, the Bitcoin Core maintainer will deliver a preliminary
yes/no verdict within three weeks. This verdict may be informed by the
debate that has taken part in the previous three weeks. If more time is
required, the maintainer is required to request an extension from the BIP
author, who may then elect to force an immediate decision (risking a no),
or choosing to allow more time.

The verdict will meet the following criteria:

   - It will address the latest version of the BIP at the time the verdict
   is rendered.

   - In case of a rejection, it will spell out and describe the technical
   rationale for this decision. Opinions held by other people are not
   considered technical rationales: if the maintainer agrees with a technical
   point made during discussion, he must own that opinion for himself.
   Therefore no BIP will be rejected on grounds of controversy, disagreement,
   lack of consensus or otherwise.

   - In case of rejection, the maintainer will provide a clear, specific
   list of actionable steps the BIP author can take next. For example, a list
   of what changes would address the technical objections raised. In case the
   maintainer believes no change could ever make the BIP acceptable, the list
   must consist of instructions for how to create a patch set and, in the case
   of changes to the consensus rules, how to initiate a hard fork.

A BIP, even once rejected, may live on in the BIPS repository, though its
entry in the index may be sorted below others. The BIP author may update
the BIP with a summary of any resulting discussion. As such a summary may
be inherently contentious in case of a dispute, the authors wording of that
summary is final and may not be subject to meta-debate.

[-- Attachment #2: Type: text/html, Size: 2646 bytes --]

 permalink raw reply	[|nested]
2015-06-18 14:53       ` Jeff Garzik

  2015-06-18 16:28           ` Jeff Garzik
  
From: justusranvier @ 2015-06-18 16:07 UTC (permalink / raw)
  To: Jeff Garzik;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 2015-06-18 14:53, Jeff Garzik wrote:
> Consensus changes - worded another way - change Bitcoin's Constitution 
> -
> The Rules that everyone in the system is -forced- to follow, or be 
> ignored
> by the system.

Force is not a helpful or accurate way to describe the situation.

The purpose of Bitcoin to let people trade with each other, and trade 
requires mutual agreement.

If some people choose not to trade under certain terms, they aren't 
"forcing" anybody to do anything. They are simply refraining from 
proposed interactions. Not granting them the right to do this would 
actually be forcing them to engage in interactions against their will.

It's an unavoidable reality that Bitcoin's usefulness is related to the 
size (really: economic output) of the group of people who can be 
convinced that it's in their best interest to agree on a common trade 
protocol.

Conversations that feature untrue claims about someone forcing someone 
else to do something is the opposite of a viable strategy for growing 
the size of that group.

Arguments about who violated what Bitcoin Core internal governance 
procedures are not interesting to most Bitcoin users, who generally 
don't know or care who has commit access to the repository.

Getting angry at Gavin and Mike for providing Bitcoin users with an 
alternative which they can freely choose or reject is not helpful in 
persuading users to stay with Bitcoin Core. Making the case why the 
changes in Bitcoin XT are not beneficial to Bitcoin users could be.

For better or for worse, Bitcoin coin users are going to run the 
software they perceive to be in their best interests.  Nobody can stop 
them from making that choice and any effort directed at that end is 
wasted.

It's more productive to expend effort making sure the current and future 
Bitcoin users are as informed as possible about the long term and short 
term consequences of their choices.

Circling back to the original quote:

On 2015-06-18 14:53, Jeff Garzik wrote:
> Consensus changes - worded another way - change Bitcoin's Constitution 
> -
> The Rules that everyone in the system is -forced- to follow, or be 
> ignored
> by the system.

Bitcoin does not and can not function as a set of rules imposed by some 
people onto other people. Bitcoin is a negotiation about the best way 
for money to function in the future. The only way we get people to use 
Bitcoin is to convince them that the benefits they gain from agreeing to 
its protocol outweigh the downsides they encounter.

I'm confident that this case can be made successfully but a prerequisite 
to a successful negotiation is recognizing that it is, in fact, a 
negotiation, and that the other parties have full agency and the right 
to walk away if mutual agreement is not reached.

My suggestion is to spend less time talking about procedural violations 
and more time convincing Bitcoin users that Bitcoin Core is the best 
client for them to use, especially if the process of convincing them 
involves making improvements which the users are asking for (or making a 
very compelling case about why the users should reconsider).

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCgAGBQJVguyLAAoJECpf2nDq2eYjTPgP/A16QGWSWkh50OhSjHx7hdY5
v0ZqNvfKSm6a94o22yTQF8VZm7NEJJcNY0Vvu1ro95v27Bm37VodGGOXh4ao9gYQ
ETdzX35OLWUua1e9kfEwgo2Uu2l9AdALOLK5IHyLZdtxJQwUhcdeIhaSMzlZqgEk
n+gbAZXV7JdnK+oejh5s8zgfOY3MqhZC3TQBVWHWx0K0CE75rm0j4ZShYL2eKOua
CmWkcEkfeugrnQQv/BB+oe1TAJoHY4bZAr+amYLZMiC8wRcGGeVBOOFykLNd4rSV
DE+iiGHmgi/wrZjy/xT5kflX55GE8NNVjM2MMNOyD+gWbBn5INahya+DkDWupeQB
iy71NQQVnB/5U5Yhm/oVUax+Cjj/7001cf1q2rXPcjE+4ntw5ad9oCuRW3kSUpzq
C0LqEN2lbagrmk/xHSv/GQl+iWulD1mXJl63y3LdXYWno67eVYqzvRK0UB7ZSVww
3P7p8h2yuvtPtAUDyoOPn7Ghyd1U1lJWGsyffRzd2hWhEYs44cfAv6S2QWIBWbm5
j8C2ao7m6j2mirRZem+bGrN8idR/fOUIjnwqQmNIObsviMrvgXlHvORjsBcdHoKO
9Ir8CvqGWftIG5lLCJvjsnP8E3MRToo6pOsD/Ii9223Pn6DxsMvXF+IkZzUJfWDR
W+t/BYV6XtsAUKI+dAly
=3KeB
-----END PGP SIGNATURE-----




 permalink raw reply	[|nested]
2015-06-18 15:46           ` Wladimir J. van der Laan
  2015-06-18 16:05             ` Mike Hearn

  
From: Milly Bitcoin @ 2015-06-18 16:11 UTC (permalink / raw)
  To: bitcoin-development

You misunderstand what I am saying.  I am not saying I have a specific 
process that should be followed, I am saying that whatever the process 
is then it should be formalized or at least written down.  That way the 
stakeholders have something to work with and keeps people on track.  
Since some people are saying they don't really know what the process is 
the first step would be to describe the current process.  I don't fully 
understand the current process but I can see it is not formalized and 
nobody can even give me a clear description of what it is.  Once you 
have it written down then changes/improvements can be proposed.

The first baby step was already done by the Foundation in developing 
that risk study.   A NIST guide for developing such a document is at 
http://csrc.nist.gov/publications/nistpubs/800-30-rev1/sp800_30_r1.pdf. 
No one person can come up with this and it would take buy in from 
several different people who have expertise in specific technical areas 
as well as experts in coming up with test plans.  I recently suggested 
to the people running the MIT lab that they look into developing a 
program along those lines.  Gavin also recently suggested that list of 
Bitcoin metrics be developed to help resolve the current disputes.  I 
can help develop this process if there is interest.

Russ




On 6/18/2015 11:46 AM, Wladimir J. van der Laan wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
>
>> This kind of thing always happens as projects become larger and more
>> diverse.  Something that was once a small group turns into a big
>> group of diverse stakeholders.  When it gets too big for the
>> informal processes then some people get upset and defensive. Happens
>> all the time but it is not really a good excuse to keep doing things
>> in an inefficient manner.  The old ways just don't scale and if you
>> ever worked on massive projects then you know these formal processes
>> work better.
> So then: make a proposal for a better process, post it to this list.
>
> In practice there has been zero interest in improving the BIP process.
>
> E.g. the BIP process was adapted from the Python Enhancement Proposals by Amir Taaki (in 2009 or so?). It hasn't really changed since then, apart from some spelling and grammar corrections. It is not specifically adapted to Bitcoin, and doesn't make a distinction between for example, consensus changes and non-consensus changes.
>
> So that's up to someone to do. You seem to be enthousiastic about it, so go ahead.
>
> Wladimir
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
>
> iQEcBAEBCgAGBQJVgufFAAoJEHSBCwEjRsmmAmYIAI9ndrMoqEuoaP5t+7W42UuH
> sh5qR7hojCCoZZl1N+rQ63UXcPBO/V4NUkUG97S3qpEFDzuoYSbOX2Eh+TRfK+s+
> U+BpLhWteSexJ3N9aiFuR0q5jgesAzLZ9wtq1gCPI/Zu5/fgYBP4AVTiQGdXCZtv
> m6ZDKCf+aB/fW/59/AiY44NkMDjVQieEVRiT1IPFJULWesOOdtv7UoqIpz0vDa/5
> Jplm41j8IpTPioJKSwUi5qzSDrF7O39PC9LMXNRx/0FIuYfwqJpvF0Frc+vtPpjQ
> llKE7945uMXz3FLSV0Orx26XPal/MuF5AYOPNk6pJfwYw7q91AUvQxVFepBa9vw=
> =dMO9
> -----END PGP SIGNATURE-----
>





 permalink raw reply	[|nested]
2015-06-18 16:05             ` Mike Hearn

  2015-06-18 22:49               ` odinn
  
From: Wladimir J. van der Laan @ 2015-06-18 16:20 UTC (permalink / raw)
  To: Mike Hearn;  g, Bitcoin Dev

On Thu, Jun 18, 2015 at 06:05:58PM +0200, Mike Hearn wrote:

> Once a draft BIP has been submitted to bitcoin-development for
> consideration, the Bitcoin Core maintainer will deliver a preliminary
> yes/no verdict within three weeks. This verdict may be informed by the
> debate that has taken part in the previous three weeks. If more time is
> required, the maintainer is required to request an extension from the BIP
> author, who may then elect to force an immediate decision (risking a no),
> or choosing to allow more time.

Again, for the last time: Bitcoin Core maintainer does not decide about protocol or consensus level changes.

This is not a role for me. Find someone else, if you think you need an arbiter. There was an idea about a Bitcoin Standards Body once, but as far as I know that's not actively being worked on.

BTW: for more exposure a proposal is better posted as a new thread, not as a deep reply to an existing topic.

Wladimir




 permalink raw reply	[|nested]
2015-06-18 16:07         ` justusranvier

  2015-06-18 17:04             ` justusranvier
  
From: Jeff Garzik @ 2015-06-18 16:28 UTC (permalink / raw)
  To: Justus Ranvier;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 688 bytes --]

On Thu, Jun 18, 2015 at 9:07 AM, <justusranvier@riseup•net> wrote:

> On 2015-06-18 14:53, Jeff Garzik wrote:
>
>> Consensus changes - worded another way - change Bitcoin's Constitution -
>> The Rules that everyone in the system is -forced- to follow, or be ignored
>> by the system.
>>
>
> Bitcoin does not and can not function as a set of rules imposed by some
> people onto other people.


This is an engineering list.  The quote precisely describes how the bitcoin
consensus system functions.

Users' choice is largely binary:  Follow the rules, or bitcoin software
ignores you.

-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.      https://bitpay.com/

[-- Attachment #2: Type: text/html, Size: 1295 bytes --]

 permalink raw reply	[|nested]
2015-06-18 16:28           ` Jeff Garzik

  2015-06-18 17:42               ` Alex Morcos
  
From: justusranvier @ 2015-06-18 17:04 UTC (permalink / raw)
  To: Jeff Garzik;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 2015-06-18 16:28, Jeff Garzik wrote:
> This is an engineering list.  The quote precisely describes how the 
> bitcoin
> consensus system functions.
> 
> Users' choice is largely binary:  Follow the rules, or bitcoin software
> ignores you.


Software engineers should understand that they have a binary choice: 
produce the software that your customers want, or the world will ignore 
your software.

There is *no inherent value* to Bitcoin's software rules. The only value 
that is exists is that produced by the individuals who voluntarily 
choose to run the software.

Failing to account for all design requirements is bad engineering. 
Nobody cares about the design features of a bridge to nowhere.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCgAGBQJVgvoDAAoJECpf2nDq2eYj0h4P/0YaTsS963qpb63zvB6WlIPS
2lhCJ9FtAd3II5Et+5c/cisfJ9YI2OnM0y8nQpyB9NEOeueN1L1sLFcayE5aHASd
EgF7F81AhQD2iSIVwQNs2qAzrZNC2/Nx+nBzBDcrgZ6gRiPpQdsNLy2p0OuZdOgX
yG4xl6tKADB2kNi6tVPtZqUC300uQHvggtm+pexYilT0ojEbeVHCoDV40MNDZC2h
1kcdTnGU2SHJJqeZN2vChJCOMfhmK4JwKgoz7JRXe/GHkUUJKriE6Kb7SVczii9e
9qfcosbnR3gjATMoHFYuJX/nsUx52Q1LM9eQgvE8Ml+6Mim5bj2KCJFh7YISxSq9
FhDujfZFCRRQLPJCSkEUePxU/LS7lmoTZXYl3Zz1j9zbq4ncpRHpIFy9QX6iIqK6
Dursnge9ELQwB+H6HoosWRzxOZyo+oiGj17OngJvZYcvzrc2wjHbpZfVqSkmZepU
SfJZ64O7yjjXjITwhOc4XF2drzvhsjTsHH5BIwdbCn82SoCkJIwXraj7sxIundli
LUJBPiAE0csdmsvW/2kkxLsd9JwTw9lJ9Pf8fiqH3itgrkPkO5mf10DPPnay1SNk
Wnm1bAJ05WnKXSo0m0SzaFgZkdfFuhWR4fieSzhLpa+s/HHj18NZvJCmCBR6ic9G
0A+51wwSZnAdMIw7lwIb
=r4Co
-----END PGP SIGNATURE-----




 permalink raw reply	[|nested]
2015-06-18 17:04             ` justusranvier

  2015-06-18 18:01                 ` Milly Bitcoin
  2015-06-18 18:23                 ` Gavin Andresen
  
From: Alex Morcos @ 2015-06-18 17:42 UTC (permalink / raw)
  To: justusranvier;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 4161 bytes --]

Let me take a pass at explaining how I see this.

1) Code changes to Bitcoin Core that don't change consensus:  Wladimir is
the decider but he works under a process that is well understood by
developers on the project in which he takes under reasonable consideration
other technical opinions and prefers to have clear agreement among them.

2) Changes to the consensus rules: As others have said, this isn't anyone's
decision for anyone else.  It's up to each individual user as to what code
they run and what rules they enforce.  So then why is everyone so up in
arms about what Mike and Gavin are proposing if everyone is free to decide
for themselves?  I believe that each individual user should adhere to the
principle that there should be no changes to the consensus rules unless
there is near complete agreement among the entire community, users,
developers, businesses miners etc.  It is not necessary to define complete
agreement exactly because every individual person decides for themselves.
I believe that this is what gives Bitcoin, or really any money, its value
and what makes it work, that we all agree on exactly what it is.  So I
believe that it is misleading and bad for Bitcoin to tell users and
business that you can just choose without concern for everyone else which
code you'll run and we'll see which one wins out.  No.  You should run the
old consensus rules (on any codebase you want) until you believe that
pretty much everyone has consented to a change in the rules.  It is your
choice, but I think a lot of people that have spent time thinking about the
philosophy of consensus systems believe that when the users of the system
have this principle in mind, it's what will make the system work best.

3) Code changes to Core that do change consensus: I think that Wladimir,
all the other committers besides Gavin, and almost all of the other
developers on Core would defer to #2 above and wait for its outcome to be
clear before considering such a code change.

I'm sure my description of point 2 is not the most eloquent or clear, but
maybe someone else can try to elucidate this principle if they've grasped
what I'm trying to say.





On Thu, Jun 18, 2015 at 1:04 PM, <justusranvier@riseup•net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> On 2015-06-18 16:28, Jeff Garzik wrote:
> > This is an engineering list.  The quote precisely describes how the
> > bitcoin
> > consensus system functions.
> >
> > Users' choice is largely binary:  Follow the rules, or bitcoin software
> > ignores you.
>
>
> Software engineers should understand that they have a binary choice:
> produce the software that your customers want, or the world will ignore
> your software.
>
> There is *no inherent value* to Bitcoin's software rules. The only value
> that is exists is that produced by the individuals who voluntarily
> choose to run the software.
>
> Failing to account for all design requirements is bad engineering.
> Nobody cares about the design features of a bridge to nowhere.
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQIcBAEBCgAGBQJVgvoDAAoJECpf2nDq2eYj0h4P/0YaTsS963qpb63zvB6WlIPS
> 2lhCJ9FtAd3II5Et+5c/cisfJ9YI2OnM0y8nQpyB9NEOeueN1L1sLFcayE5aHASd
> EgF7F81AhQD2iSIVwQNs2qAzrZNC2/Nx+nBzBDcrgZ6gRiPpQdsNLy2p0OuZdOgX
> yG4xl6tKADB2kNi6tVPtZqUC300uQHvggtm+pexYilT0ojEbeVHCoDV40MNDZC2h
> 1kcdTnGU2SHJJqeZN2vChJCOMfhmK4JwKgoz7JRXe/GHkUUJKriE6Kb7SVczii9e
> 9qfcosbnR3gjATMoHFYuJX/nsUx52Q1LM9eQgvE8Ml+6Mim5bj2KCJFh7YISxSq9
> FhDujfZFCRRQLPJCSkEUePxU/LS7lmoTZXYl3Zz1j9zbq4ncpRHpIFy9QX6iIqK6
> Dursnge9ELQwB+H6HoosWRzxOZyo+oiGj17OngJvZYcvzrc2wjHbpZfVqSkmZepU
> SfJZ64O7yjjXjITwhOc4XF2drzvhsjTsHH5BIwdbCn82SoCkJIwXraj7sxIundli
> LUJBPiAE0csdmsvW/2kkxLsd9JwTw9lJ9Pf8fiqH3itgrkPkO5mf10DPPnay1SNk
> Wnm1bAJ05WnKXSo0m0SzaFgZkdfFuhWR4fieSzhLpa+s/HHj18NZvJCmCBR6ic9G
> 0A+51wwSZnAdMIw7lwIb
> =r4Co
> -----END PGP SIGNATURE-----
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>

[-- Attachment #2: Type: text/html, Size: 5105 bytes --]

 permalink raw reply	[|nested]
2015-06-18 17:42               ` Alex Morcos

  2015-06-18 18:23                 ` Gavin Andresen
  
From: Milly Bitcoin @ 2015-06-18 18:01 UTC (permalink / raw)
  To: Bitcoin Dev

 >2) Changes to the consensus rules: As others have said, this isn't 
anyone's decision for anyone else.  It's up to each individual user as 
to what code they run and what rules they enforce.  So then why is 
everyone so up in arms about what Mike and Gavin are proposing if 
everyone is free to decide for themselves?

Because the notion that people are free to decide for themselves is just 
a rough approximation of the real world situation.  If your software 
does not agree with merchants and exchanges you can't pay your bills and 
if Bitcoin splits the exchange rate could plummet and damage the 
ecosystem.   People are free to decide within the constraints of the 
Bitcoin system.

Russ




 permalink raw reply	[|nested]
2015-06-18 10:00 ` Mike Hearn
                     ` (2 preceding siblings ...)
  2015-06-18 14:33   ` Bryan Bishop

  2015-06-18 22:10   ` odinn
  
From: Melvin Carvalho @ 2015-06-18 18:09 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 3102 bytes --]

On 18 June 2015 at 12:00, Mike Hearn <mike@plan99•net> wrote:

> Dude, calm down. I don't have commit access to Bitcoin Core and Gavin
> already said long ago he wouldn't just commit something, even though he has
> the ability to do so.
>
> So why did I say it? Because it's consistent with what I've always said:
>  you cannot run a codebase like Wikipedia. Maintainers have to take part in
> debates, and then make a decision, and anyone else who was delegated commit
> access for robustness or convenience must then respect that decision. It's
> the only way to keep a project making progress at a reasonable pace.
>
> This is not a radical position. That's how nearly all coding projects
> work. I have been involved with open source for 15 years and the 'single
> maintainer who makes decisions' model is normal, even if in some large
> codebases  subsystems have delegated submaintainers.
>
> This is also how all my own projects are run. Bitcoinj has multiple people
> with commit access. Regardless, if there were to be some design dispute or
> whatever, I wouldn't tolerate the others with commit access starting some
> kind of Wiki-style edit war in the code if they disagreed. Nor would I ever
> expect to get my own way in other people's projects by threatening to
> revert the maintainers changes.
>
> Core is in the weird position where there's no decision making ability at
> all, because anyone who shows up and shouts enough can generate
> 'controversy', then Wladimir sees there is disagreement and won't touch the
> issue in question. So it just runs and runs and *anyone* with commit
> access can then block any change.
>
> I realise some people think this anti-process leads to better decision
> making. I disagree. It leads to no decision making, which is not the same
> thing at all.
>

Bicoin is not like other projects.  There are large financial stakes
involved.  I was at a standards convention once and the head of standards
at a large company joked to me:

"We know there are 6 people in the standards world that we can never buy.
So we just buy everyone else".

You have to luck out in a huge way to get a person like that running your
project.  Linux has done.  Id say bitcoin has been lucky there too.  But
have a look at other projects, have a look at the alts, the *last* thing
you want is a dictator in may cases.

Ultimately bitcoin is a ledger based on consensus.  There are 3 branches,
the miners, the protocol and the market.  They all play a role in
regulating bitcoin and generally on the conservative side (which I think is
a good thing).  Whatever your view on the 20MB change, it's not a
*conservative* approach, which is the approach that has served bitcoin very
well so far.

So bitcoin is not like other open source projects, and that's probably
quite a good thing.


>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>

[-- Attachment #2: Type: text/html, Size: 3979 bytes --]

 permalink raw reply	[|nested]
2015-06-18 17:42               ` Alex Morcos
  2015-06-18 18:01                 ` Milly Bitcoin

  2015-06-18 18:44                   ` Alex Morcos
                                     ` (2 more replies)
  
From: Gavin Andresen @ 2015-06-18 18:23 UTC (permalink / raw)
  To: Alex Morcos;  Bitcoin Dev, Justus Ranvier

[-- Attachment #1: Type: text/plain, Size: 3351 bytes --]

On Thu, Jun 18, 2015 at 1:42 PM, Alex Morcos <morcos@gmail•com> wrote:

> Let me take a pass at explaining how I see this.
>
> 1) Code changes to Bitcoin Core that don't change consensus:  Wladimir is
> the decider but he works under a process that is well understood by
> developers on the project in which he takes under reasonable consideration
> other technical opinions and prefers to have clear agreement among them.
>

Yes.

2) Changes to the consensus rules: As others have said, this isn't anyone's
> decision for anyone else.
>

Yes.


> It's up to each individual user as to what code they run and what rules
> they enforce.  So then why is everyone so up in arms about what Mike and
> Gavin are proposing if everyone is free to decide for themselves?  I
> believe that each individual user should adhere to the principle that there
> should be no changes to the consensus rules unless there is near complete
> agreement among the entire community, users, developers, businesses miners
> etc. It is not necessary to define complete agreement exactly because every
> individual person decides for themselves.  I believe that this is what
> gives Bitcoin, or really any money, its value and what makes it work, that
> we all agree on exactly what it is.  So I believe that it is misleading and
> bad for Bitcoin to tell users and business that you can just choose without
> concern for everyone else which code you'll run and we'll see which one
> wins out.  No.  You should run the old consensus rules (on any codebase you
> want) until you believe that pretty much everyone has consented to a change
> in the rules.  It is your choice, but I think a lot of people that have
> spent time thinking about the philosophy of consensus systems believe that
> when the users of the system have this principle in mind, it's what will
> make the system work best.
>

I don't think I agree with "pretty much everybody", because status-quo bias
is a very powerful thing. Any change that disrupts the way they've been
doing things will generate significant resistance -- there will be 10 or
20% of any population that will take a position of "too busy to think about
this, everything seems to be working great, I don't like change, NO to any
change."

For example, I think some of the resistance for bigger blocks is coming
from contributors who are worried they, personally, won't be able to keep
up with a bigger blockchain. They might not be able to run full nodes from
their home network connections (or might not be able to run a full node AND
stream Game of Thrones), on their old raspberry pi machines.

The criteria for me is "clear super-majority of the people and businesses
who are using Bitcoin the most," and I think that criteria is met.



> 3) Code changes to Core that do change consensus: I think that Wladimir,
> all the other committers besides Gavin, and almost all of the other
> developers on Core would defer to #2 above and wait for its outcome to be
> clear before considering such a code change.
>

Yes, that's the way it has mostly been working. But even before stepping
down as Lead I was starting to wonder if there are ANY successful open
source projects that didn't have either a Benevolent Dictator or some clear
voting process to resolve disputes that cannot be settled with "rough
consensus."


-- 
--
Gavin Andresen

[-- Attachment #2: Type: text/html, Size: 4426 bytes --]

 permalink raw reply	[|nested]
2015-06-18 17:42               ` Alex Morcos
  2015-06-18 18:01                 ` Milly Bitcoin

  2015-06-18 18:44                   ` 
                                     ` 
  
From: Gavin Andresen @ 2015-06-18 18:23 UTC (permalink / raw)
  To: Alex Morcos;  Bitcoin Dev, Justus Ranvier

[-- Attachment #1: Type: text/plain, Size: 3351 bytes --]

On Thu, Jun 18, 2015 at 1:42 PM, Alex Morcos <morcos@gmail•com> wrote:

> Let me take a pass at explaining how I see this.
>
> 1) Code changes to Bitcoin Core that don't change consensus:  Wladimir is
> the decider but he works under a process that is well understood by
> developers on the project in which he takes under reasonable consideration
> other technical opinions and prefers to have clear agreement among them.
>

Yes.

2) Changes to the consensus rules: As others have said, this isn't anyone's
> decision for anyone else.
>

Yes.


> It's up to each individual user as to what code they run and what rules
> they enforce.  So then why is everyone so up in arms about what Mike and
> Gavin are proposing if everyone is free to decide for themselves?  I
> believe that each individual user should adhere to the principle that there
> should be no changes to the consensus rules unless there is near complete
> agreement among the entire community, users, developers, businesses miners
> etc. It is not necessary to define complete agreement exactly because every
> individual person decides for themselves.  I believe that this is what
> gives Bitcoin, or really any money, its value and what makes it work, that
> we all agree on exactly what it is.  So I believe that it is misleading and
> bad for Bitcoin to tell users and business that you can just choose without
> concern for everyone else which code you'll run and we'll see which one
> wins out.  No.  You should run the old consensus rules (on any codebase you
> want) until you believe that pretty much everyone has consented to a change
> in the rules.  It is your choice, but I think a lot of people that have
> spent time thinking about the philosophy of consensus systems believe that
> when the users of the system have this principle in mind, it's what will
> make the system work best.
>

I don't think I agree with "pretty much everybody", because status-quo bias
is a very powerful thing. Any change that disrupts the way they've been
doing things will generate significant resistance -- there will be 10 or
20% of any population that will take a position of "too busy to think about
this, everything seems to be working great, I don't like change, NO to any
change."

For example, I think some of the resistance for bigger blocks is coming
from contributors who are worried they, personally, won't be able to keep
up with a bigger blockchain. They might not be able to run full nodes from
their home network connections (or might not be able to run a full node AND
stream Game of Thrones), on their old raspberry pi machines.

The criteria for me is "clear super-majority of the people and businesses
who are using Bitcoin the most," and I think that criteria is met.



> 3) Code changes to Core that do change consensus: I think that Wladimir,
> all the other committers besides Gavin, and almost all of the other
> developers on Core would defer to #2 above and wait for its outcome to be
> clear before considering such a code change.
>

Yes, that's the way it has mostly been working. But even before stepping
down as Lead I was starting to wonder if there are ANY successful open
source projects that didn't have either a Benevolent Dictator or some clear
voting process to resolve disputes that cannot be settled with "rough
consensus."


-- 
--
Gavin Andresen

[-- Attachment #2: Type: text/html, Size: 4426 bytes --]

 permalink raw reply	[|nested]
2015-06-18 18:23                 ` Gavin Andresen
  2015-06-18 18:44                   ` Alex Morcos

  2015-06-18 19:31                     ` Ross Nicoll
  2015-06-18 19:24                   ` Matt Corallo
  
From: Jorge Timón @ 2015-06-18 18:49 UTC (permalink / raw)
  To: Gavin Andresen;  Bitcoin Dev, Justus Ranvier

On Thu, Jun 18, 2015 at 8:23 PM, Gavin Andresen <gavinandresen@gmail•com> wrote:
> On Thu, Jun 18, 2015 at 1:42 PM, Alex Morcos <morcos@gmail•com> wrote:
>>
>> Let me take a pass at explaining how I see this.
>>
>> 1) Code changes to Bitcoin Core that don't change consensus:  Wladimir is
>> the decider but he works under a process that is well understood by
>> developers on the project in which he takes under reasonable consideration
>> other technical opinions and prefers to have clear agreement among them.
>
>
> Yes.
>
>> 2) Changes to the consensus rules: As others have said, this isn't
>> anyone's decision for anyone else.
>
>
> Yes.
>
> [...]
>
> I don't think I agree with "pretty much everybody", because status-quo bias
> is a very powerful thing. Any change that disrupts the way they've been
> doing things will generate significant resistance -- there will be 10 or 20%
> of any population that will take a position of "too busy to think about
> this, everything seems to be working great, I don't like change, NO to any
> change."

But according to Alex's explanation (which I think is very good
leaving asides some cases like change of the pow hashing function, for
example) there's no individual that can force or veto a change. It is
the decision of each individual user and their own "pretty much
everybody" may vary. But this "pretty much everybody" is what Mark
referred to with the "I know it when I see it."

> The criteria for me is "clear super-majority of the people and businesses
> who are using Bitcoin the most," and I think that criteria is met.

If you recommend users to apply changes when this criterion is met but
you know there's still many users who don't agree with the change,
then you're acting irresponsibly by promoting a chaotic consensus fork
where coins can be spent in both chains at once.
Well...unless you're promoting it as an altcoin that simply happens to
distribute part of the initial monetary based to bitcoin holders at
block X and whose genesis block is equal to bitcoin's genesis block at
block X. I guess in that case you wouldn't necessarily be
irresponsible.
"Miner's vote" is irrelevant here since it cannot tell you anything
about users adoption (besides miner's adoption of course).

>> 3) Code changes to Core that do change consensus: I think that Wladimir,
>> all the other committers besides Gavin, and almost all of the other
>> developers on Core would defer to #2 above and wait for its outcome to be
>> clear before considering such a code change.
>
>
> Yes, that's the way it has mostly been working. But even before stepping
> down as Lead I was starting to wonder if there are ANY successful open
> source projects that didn't have either a Benevolent Dictator or some clear
> voting process to resolve disputes that cannot be settled with "rough
> consensus."

But this is only relevant for the point 1. Software projects can have
dictators, forks and everything else other free software projects
have. But consensus-based p2p blockchains cannot change their rules in
the same way, otherwise they're centralized.

THERE CANNOT BE A VOTING PROCESS FOR CONSENSUS CHANGES.
If anybody can vote, hod do you prevent the sibyls from outvoting everyone?
If not everybody can vote, how is the voters' list determined without
centralizing the system?
If we had a technical solution to this problem we wouldn't need proof
of work in the first place!!



 permalink raw reply	[|nested]
2015-06-18 18:23                 ` Gavin Andresen
  2015-06-18 18:44                   ` Alex Morcos
  2015-06-18 18:49                   ` Jorge Timón

  2015-06-18 19:32                     ` Gregory Maxwell
  
From: Matt Corallo @ 2015-06-18 19:24 UTC (permalink / raw)
  To: Gavin Andresen, Alex Morcos;  Bitcoin Dev

>For example, I think some of the resistance for bigger blocks is coming
>from contributors who are worried they, personally, won't be able to
>keep
>up with a bigger blockchain. They might not be able to run full nodes
>from
>their home network connections (or might not be able to run a full node
>AND
>stream Game of Thrones), on their old raspberry pi machines.

Ive been trying to stay out of these increasingly useless shit-throwing contests, but I wanted to take objection to this... I highly, highly doubt any seriously technical person is making any kind of decision on block size issues based on their own personal network. If you're assuming this is a serious motivating factor for anyone, then I'm not sure you've even been reading your email or listening to the conversations you've had with people over the last year or more.

On June 18, 2015 11:23:33 AM PDT, Gavin Andresen <gavinandresen@gmail•com> wrote:
>On Thu, Jun 18, 2015 at 1:42 PM, Alex Morcos <morcos@gmail•com> wrote:
>
>> Let me take a pass at explaining how I see this.
>>
>> 1) Code changes to Bitcoin Core that don't change consensus: 
>Wladimir is
>> the decider but he works under a process that is well understood by
>> developers on the project in which he takes under reasonable
>consideration
>> other technical opinions and prefers to have clear agreement among
>them.
>>
>
>Yes.
>
>2) Changes to the consensus rules: As others have said, this isn't
>anyone's
>> decision for anyone else.
>>
>
>Yes.
>
>
>> It's up to each individual user as to what code they run and what
>rules
>> they enforce.  So then why is everyone so up in arms about what Mike
>and
>> Gavin are proposing if everyone is free to decide for themselves?  I
>> believe that each individual user should adhere to the principle that
>there
>> should be no changes to the consensus rules unless there is near
>complete
>> agreement among the entire community, users, developers, businesses
>miners
>> etc. It is not necessary to define complete agreement exactly because
>every
>> individual person decides for themselves.  I believe that this is
>what
>> gives Bitcoin, or really any money, its value and what makes it work,
>that
>> we all agree on exactly what it is.  So I believe that it is
>misleading and
>> bad for Bitcoin to tell users and business that you can just choose
>without
>> concern for everyone else which code you'll run and we'll see which
>one
>> wins out.  No.  You should run the old consensus rules (on any
>codebase you
>> want) until you believe that pretty much everyone has consented to a
>change
>> in the rules.  It is your choice, but I think a lot of people that
>have
>> spent time thinking about the philosophy of consensus systems believe
>that
>> when the users of the system have this principle in mind, it's what
>will
>> make the system work best.
>>
>
>I don't think I agree with "pretty much everybody", because status-quo
>bias
>is a very powerful thing. Any change that disrupts the way they've been
>doing things will generate significant resistance -- there will be 10
>or
>20% of any population that will take a position of "too busy to think
>about
>this, everything seems to be working great, I don't like change, NO to
>any
>change."
>
>For example, I think some of the resistance for bigger blocks is coming
>from contributors who are worried they, personally, won't be able to
>keep
>up with a bigger blockchain. They might not be able to run full nodes
>from
>their home network connections (or might not be able to run a full node
>AND
>stream Game of Thrones), on their old raspberry pi machines.
>
>The criteria for me is "clear super-majority of the people and
>businesses
>who are using Bitcoin the most," and I think that criteria is met.
>
>
>
>> 3) Code changes to Core that do change consensus: I think that
>Wladimir,
>> all the other committers besides Gavin, and almost all of the other
>> developers on Core would defer to #2 above and wait for its outcome
>to be
>> clear before considering such a code change.
>>
>
>Yes, that's the way it has mostly been working. But even before
>stepping
>down as Lead I was starting to wonder if there are ANY successful open
>source projects that didn't have either a Benevolent Dictator or some
>clear
>voting process to resolve disputes that cannot be settled with "rough
>consensus."




 permalink raw reply	[|nested]
2015-06-18 18:49                   ` Jorge Timón

  2015-06-18 21:42                       ` Matt Whitlock
  
From: Ross Nicoll @ 2015-06-18 19:31 UTC (permalink / raw)
  To: bitcoin-development

I've got a few thoughts on this, but they don't really attach well to a 
single message, so starting a fresh message in the same thread. I'm 
going to try being brief.

There's a lot of talk about not forking. Sorry, but they're going to 
happen, planned and unplanned. Even if no intentional forks occur from 
here on, I hope it's obvious that there will be further accidental forks 
(at least unless and until someone prepares a formal proof of a Bitcoin 
wallet). We need to be more comfortable with that, and plan ahead. 
Education is key here, a lot of people don't understand what a fork is, 
how it will affect them, how to recognise a fork or how to recover. I'll 
dig out what materials I've written already and try making them more 
widely available, as a start.

On whether code forks are a solution to disagreements - I'm not quite 
sure what people expect will happen where a group believes there is an 
existential threat to Bitcoin and they cannot get Bitcoin Core updated. 
I may disagree with Mike & Gavin on timescale, but I do believe there's 
a likelihood inaction will kill Bitcoin, and in that context I see the 
rational choice as taking the perceived smaller risk of a fork killing 
Bitcoin. BIP100 appears to be making progress, however, right now I 
think the best option is pursuing it towards something that can be 
agreed on by all. I would also happily go with an 8MB block size even if 
just to buy us (IMHO a lot) more time.

Lastly, there seems to be a number of people who believe inaction 
through apathy is fine. I respect those who form considered opinions and 
tell me why they believe 1MB is fine, but I do ask that people either 
put the effort in to help make decisions, or delegate to someone else. 
Decentralised does not mean there's no decision making, it means we're 
all decision makers, and frankly I think there's effectively negligence 
in that capacity right now. I'd also point out this ongoing discussion 
is a huge time sink to a number of people who could be making much more 
useful contributions, and that again going in circles endlessly 
discussing in the name of decentralisation isn't positive.

I have failed at being brief, apologies.

Ross




 permalink raw reply	[|nested]
2015-06-18 19:24                   ` Matt Corallo

  
From: Gregory Maxwell @ 2015-06-18 19:32 UTC (permalink / raw)
  To: Matt Corallo;  Bitcoin Dev

On Thu, Jun 18, 2015 at 7:24 PM, Matt Corallo <bitcoin-list@bluematt•me> wrote:
> Ive been trying to stay out of these increasingly useless shit-throwing contests, but I wanted to take objection to this... I highly, highly doubt any seriously technical person is making any kind of decision on block size issues based on their own personal network. If you're assuming this is a serious motivating factor for anyone, then I'm not sure you've even been reading your email or listening to the conversations you've had with people over the last year or more.

It's probably due to me: When I point to trends and broadband
_distribution_ in the US (much less the less developed parts of the
world), I'm being "hypothetical", and when I point to my _own_
connectivity as a concrete example it's "personal". It's no joke that
communication is _hard_ but it's a shared responsibility however, and
no need to assume anyone isn't reading.,



 permalink raw reply	[|nested]
2015-06-18 19:31                     ` Ross Nicoll

  2015-06-18 21:49                         ` Mark Friedenbach
  2015-06-18 21:55                         ` Ross Nicoll
  
From: Matt Whitlock @ 2015-06-18 21:42 UTC (permalink / raw)
  To: bitcoin-development

On Thursday, 18 June 2015, at 8:31 pm, Ross Nicoll wrote:
> I may disagree with Mike & Gavin on timescale, but I do believe there's 
> a likelihood inaction will kill Bitcoin

An honest question: who is proposing inaction? I haven't seen anyone in this whole, agonizing debate arguing that 1MB blocks are adequate. The debate has been about *how* to increase the block-size limit and whether to take action ASAP (at the risk of fracturing Bitcoin) or to delay action for further debate (at the risk of overloading Bitcoin). Even those who are arguing for further debate are not arguing for *inaction*.



 permalink raw reply	[|nested]
2015-06-18 21:42                       ` Matt Whitlock

  2015-06-18 21:58                           ` Jeff Garzik
  2015-06-18 21:55                         ` Ross Nicoll
  
From: Mark Friedenbach @ 2015-06-18 21:49 UTC (permalink / raw)
  To: Matt Whitlock;  Bitcoin Development

[-- Attachment #1: Type: text/plain, Size: 1421 bytes --]

Matt, I for one do not think that the block size limit should be raised at
this time. Matt Corallo also started the public conversation over this
issue on the mailing list by stating that he was not in favor of acting now
to raise the block size limit. I find it a reasonable position to take that
even if you feel the block size limit should be raised at some time in the
future, there are reasons why now is not the best time to do it.

On Thu, Jun 18, 2015 at 2:42 PM, Matt Whitlock <bip@mattwhitlock•name>
wrote:

> On Thursday, 18 June 2015, at 8:31 pm, Ross Nicoll wrote:
> > I may disagree with Mike & Gavin on timescale, but I do believe there's
> > a likelihood inaction will kill Bitcoin
>
> An honest question: who is proposing inaction? I haven't seen anyone in
> this whole, agonizing debate arguing that 1MB blocks are adequate. The
> debate has been about *how* to increase the block-size limit and whether to
> take action ASAP (at the risk of fracturing Bitcoin) or to delay action for
> further debate (at the risk of overloading Bitcoin). Even those who are
> arguing for further debate are not arguing for *inaction*.
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>

[-- Attachment #2: Type: text/html, Size: 2005 bytes --]

 permalink raw reply	[|nested]
2015-06-18 21:42                       ` Matt Whitlock
  2015-06-18 21:49                         ` Mark Friedenbach

  
From: Ross Nicoll @ 2015-06-18 21:55 UTC (permalink / raw)
  To: Matt Whitlock, bitcoin-development

There's some actually proposing inaction as an outright decision, but I 
more meant that at times it has felt like we would end up with inaction 
through momentum, combined with adoption rate making any hard fork more 
complex if it continues to be delayed.

On 18/06/2015 22:42, Matt Whitlock wrote:
> On Thursday, 18 June 2015, at 8:31 pm, Ross Nicoll wrote:
>> I may disagree with Mike & Gavin on timescale, but I do believe there's
>> a likelihood inaction will kill Bitcoin
> An honest question: who is proposing inaction? I haven't seen anyone in this whole, agonizing debate arguing that 1MB blocks are adequate. The debate has been about *how* to increase the block-size limit and whether to take action ASAP (at the risk of fracturing Bitcoin) or to delay action for further debate (at the risk of overloading Bitcoin). Even those who are arguing for further debate are not arguing for *inaction*.




 permalink raw reply	[|nested]
2015-06-18 21:49                         ` Mark Friedenbach

  2015-06-18 22:33                             ` Mark Friedenbach
  
From: Jeff Garzik @ 2015-06-18 21:58 UTC (permalink / raw)
  To: Mark Friedenbach;  Bitcoin Development, Gavin Andresen

[-- Attachment #1: Type: text/plain, Size: 856 bytes --]

Is that a forward-looking position?  It does not seem so.

The whole point is getting out in front of the need, to prevent significant
negative impact to users when blocks are consistently full.

To do that, you need to (a) plan forward, in order to (b) set a hard fork
date in the future.

"We don't see a need today" is therefore useless, because when you do reach
X day when need is apparent, the best solution then becomes an immediate
fork for which the network and markets are not prepared.

Failing to resolve the block size issue soon will simply result in most
businesses assuming relevant Bitcoin Core standards process is failing, and
proceed with the Bitcoin-XT fork.

As I've said on IRC, the "do nothing, for now" position is untenable.

-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.      https://bitpay.com/

[-- Attachment #2: Type: text/html, Size: 1170 bytes --]

 permalink raw reply	[|nested]
2015-06-18 10:00 ` Mike Hearn
                     ` (3 preceding siblings ...)
  2015-06-18 18:09   ` Melvin Carvalho

  
From: odinn @ 2015-06-18 22:10 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I maintain that you should apologize to those who traverse this list.
 What you are saying is digging yourself a deeper hole and is not
merely embarrassing but is crossing a threshold in which you have used
words, albeit subtly, to attack a community.

If you refuse to apologize, I get it.  You have not apologized thus
far, and pressing for an apology is unlikely to get an (authentic)
one.  But then, you should voluntarily step back and let others do the
hard work of coming to the consensus that you seem to think is
impossible to accomplish based on how bitcoin is run.

I believe this matter will be resolved, but not with the "help" of
those who make threatening statements (and who are unable to apologize
for having made them).

- -O

On 06/18/2015 03:00 AM, Mike Hearn wrote:
> Dude, calm down. I don't have commit access to Bitcoin Core and
> Gavin already said long ago he wouldn't just commit something, even
> though he has the ability to do so.
> 
> So why did I say it? Because it's consistent with what I've always
> said: you cannot run a codebase like Wikipedia. Maintainers have to
> take part in debates, and then make a decision, and anyone else who
> was delegated commit access for robustness or convenience must then
> respect that decision. It's the only way to keep a project making
> progress at a reasonable pace.
> 
> This is not a radical position. That's how nearly all coding
> projects work. I have been involved with open source for 15 years
> and the 'single maintainer who makes decisions' model is normal,
> even if in some large codebases  subsystems have delegated
> submaintainers.
> 
> This is also how all my own projects are run. Bitcoinj has
> multiple people with commit access. Regardless, if there were to be
> some design dispute or whatever, I wouldn't tolerate the others
> with commit access starting some kind of Wiki-style edit war in the
> code if they disagreed. Nor would I ever expect to get my own way
> in other people's projects by threatening to revert the maintainers
> changes.
> 
> Core is in the weird position where there's no decision making
> ability at all, because anyone who shows up and shouts enough can
> generate 'controversy', then Wladimir sees there is disagreement
> and won't touch the issue in question. So it just runs and runs and
> /anyone/ with commit access can then block any change.
> 
> I realise some people think this anti-process leads to better
> decision making. I disagree. It leads to no decision making, which
> is not the same thing at all.

- -- 
http://abis.io ~
"a protocol concept to enable decentralization
and expansion of a giving economy, and a new social good"
https://keybase.io/odinn
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVg0HiAAoJEGxwq/inSG8CXOwIAKSGRJPtSx+untgMERwE7lW7
9p0gWz4jvKhyO+RrGPXlofckvp4Fp/7Yxa+TDLcXbzGi6OesX9yIyN7e06LJW4DP
h7V2PwzS49ZyB/krd03HjvWMFnhoGy7zB7M1okq5myIvx+h1htX9TirNbDl7PU9Z
SWyNNw+GXPsIV/xuPu81LP5GrR3gIxwwhhopOq2qcm08AUiuIJ8EA31mT2ZgwMWB
RxrnktFRzMbW2fD7Z7njTz1gjw1duPyGApJ+xpqtcjjS2idPNuw1nESZTCE3+TwG
Dk1AKmYt8TvZzFWyo/0ly7vYFFW27Yh7SC3oeDJBoWkvySuIFrevux7ekfKxPOc=
=wc2m
-----END PGP SIGNATURE-----



 permalink raw reply	[|nested]
2015-06-18 21:58                           ` Jeff Garzik

  2015-06-18 22:52                               ` Jeff Garzik
                                                 ` (3 more replies)
  
From: Mark Friedenbach @ 2015-06-18 22:33 UTC (permalink / raw)
  To: Jeff Garzik;  Bitcoin Development, Gavin Andresen

[-- Attachment #1: Type: text/plain, Size: 927 bytes --]

On Thu, Jun 18, 2015 at 2:58 PM, Jeff Garzik <jgarzik@bitpay•com> wrote:

>
> The whole point is getting out in front of the need, to prevent
> significant negative impact to users when blocks are consistently full.
>
> To do that, you need to (a) plan forward, in order to (b) set a hard fork
> date in the future.
>

Or alternatively, fix the reasons why users would have negative experiences
with full blocks, chiefly:

  * Get safe forms of replace-by-fee and child-pays-for-parent finished and
in 0.12.
  * Develop cross-platform libraries for managing micropayment channels,
and get wallet authors to adopt
  * Use fidelity bonds, solvency proofs, and other tricks to minimize the
risk of already deployed off-chain solutions as an interim measure until:
  * Deploy soft-fork changes for truly scalable solutions like Lightning
Network.

Not raising the block size limit does not mean doing nothing to solve the
problem.

[-- Attachment #2: Type: text/html, Size: 1362 bytes --]

 permalink raw reply	[|nested]
2015-06-18 16:05             ` Mike Hearn
  2015-06-18 16:20               ` Wladimir J. van der Laan

  
From: odinn @ 2015-06-18 22:49 UTC (permalink / raw)
  To: bitcoin-development

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Regarding this proposal from Mike Hearn to remove consensus process
from the BIP, which I think is unsound philosophy.  I will address
this briefly below.

On 06/18/2015 09:05 AM, Mike Hearn wrote:
> So then: make a proposal for a better process, post it to this
> list.
> 
> 
> Alright. Here is a first cut of my proposal. It can be inserted
> into an amended BIP 1 after "What belongs in a successful BIP?".
> Let me know what you think.
> 
> 
> 
> The following section applies to BIPs that affect the block chain 
> consensus rules or the peer to peer protocol and thus require
> changes to Bitcoin Core.
> 
> Once a draft BIP has been submitted to bitcoin-development for 
> consideration, the Bitcoin Core maintainer will deliver a
> preliminary yes/no verdict within three weeks.

For many things, that will simply be too fast. It is better to allow
the primary maintainer to collaborate with other people who normally
work on the code and determine what the schedule will be based on
life, volume of work, and so on.


> This verdict may be informed by the debate that has taken part in
> the previous three weeks. If more time is required, the maintainer
> is required to request an extension from the BIP author, who may
> then elect to force an immediate decision (risking a no), or
> choosing to allow more time.

Again, this three week thing doesn't work.  But assume for a moment
that there is a certain amount of time that is such and so and it is
set by the maintainer.  The notion that the maintainer would be
"required" to request an extension from the BIP author is sheer
lunacy.  There is no need to codify the actions of the project
maintainer such that he/she would be needing to be subject to the
whims of whatever BIP author.  In like manner, a BIP author should not
have to be subject to forever delay of a BIP due to inaction of a
maintainer, but should have an answer regarding whether it can be
assigned a number, published as draft and so forth after a reasonable
time.  To me, a "reasonable time" is something that should be
discussed amongst the maintainer, those who work regularly on code,
and the BIP author.

> 
> The verdict will meet the following criteria:
> 
> * It will address the latest version of the BIP at the time the 
> verdict is rendered.
> 
> * In case of a rejection, it will spell out and describe the
> technical rationale for this decision. Opinions held by other
> people are not considered technical rationales: if the maintainer
> agrees with a technical point made during discussion, he must own
> that opinion for himself. Therefore no BIP will be rejected on
> grounds of controversy, disagreement, lack of consensus or
> otherwise.

No, this is ridiculous, because the notion that "no BIP will be
rejected on grounds of controversy, disagreement, lack of consensus,
or otherwise," is clearly an attempt to do away with consensus models
of business, and it is also not a very logical statement because
controversy and disagreement are a natural part of... coming to what
eventually is an agreement.

> 
> * In case of rejection, the maintainer will provide a clear,
> specific list of actionable steps the BIP author can take next. For
> example, a list of what changes would address the technical
> objections raised.

This above section I agree with.


 In case the maintainer believes no change could ever make
> the BIP acceptable, the list must consist of instructions for how
> to create a patch set and, in the case of changes to the consensus 
> rules, how to initiate a hard fork.

This above section I do not agree with because of the obvious bias in
favor of the hard fork.  Everything here seems to be aligned to push
for hard fork, hard fork, hard fork.  It's like the author can't tear
his mind off it.

> 
> A BIP, even once rejected, may live on in the BIPS repository,
> though its entry in the index may be sorted below others. The BIP
> author may update the BIP with a summary of any resulting
> discussion. As such a summary may be inherently contentious in case
> of a dispute, the authors wording of that summary is final and may
> not be subject to meta-debate.
> 
> 
This doesn't seem right at all.

> 
> 
> ----------------------------------------------------------------------
- --------
>
> 
> 
> 
> _______________________________________________ Bitcoin-development
> mailing list Bitcoin-development@lists•sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> 

- -- 
http://abis.io ~
"a protocol concept to enable decentralization
and expansion of a giving economy, and a new social good"
https://keybase.io/odinn
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVg0sHAAoJEGxwq/inSG8CuFcH/0tzRWWyy3wmDegNx463xoaq
EhG/dNqoIvavMlyJrKfKWPK6Mndgo9BtxkYbvOlO40Y51SW4SaisWGzHRg4HyIbJ
0Orp+C0jXhvnrJ7hRwKhrdZQUIRAI19NLVthSb9W6mHnXWJC8ilhlK9Ei9ILRjGl
tM5pZ28SkyJ/b+CnltnYW8t6AvE4zlggC4QsCuUwA2cFoFWjQeESpqjy4kJNv464
yKlsrqoIzs2vNnoLIx1B0aLX9mNTQUwB1yMXtu8IVcAQe/G1LEEnNO56LGf8O0yJ
KcBTSpDAtCxvfkwtr3DS6LtCzXcej974NW068n/92zZIKzsdcZk/o3O5ZxEO7Wg=
=YwvU
-----END PGP SIGNATURE-----



 permalink raw reply	[|nested]
2015-06-18 21:58                           ` Jeff Garzik

  2015-06-18 22:52                               ` 
                                                 ` 
  
From: Mark Friedenbach @ 2015-06-18 22:33 UTC (permalink / raw)
  To: Jeff Garzik;  Bitcoin Development, Gavin Andresen

[-- Attachment #1: Type: text/plain, Size: 927 bytes --]

On Thu, Jun 18, 2015 at 2:58 PM, Jeff Garzik <jgarzik@bitpay•com> wrote:

>
> The whole point is getting out in front of the need, to prevent
> significant negative impact to users when blocks are consistently full.
>
> To do that, you need to (a) plan forward, in order to (b) set a hard fork
> date in the future.
>

Or alternatively, fix the reasons why users would have negative experiences
with full blocks, chiefly:

  * Get safe forms of replace-by-fee and child-pays-for-parent finished and
in 0.12.
  * Develop cross-platform libraries for managing micropayment channels,
and get wallet authors to adopt
  * Use fidelity bonds, solvency proofs, and other tricks to minimize the
risk of already deployed off-chain solutions as an interim measure until:
  * Deploy soft-fork changes for truly scalable solutions like Lightning
Network.

Not raising the block size limit does not mean doing nothing to solve the
problem.

[-- Attachment #2: Type: text/html, Size: 1362 bytes --]

 permalink raw reply	[|nested]
* 
  2015-06-18 22:33                             ` Mark Friedenbach

  2015-06-18 23:25                                 ` odinn
  2015-06-18 23:16                               ` 
                                                 ` 
  3 siblings, 1 reply; 60+ messages in thread
From: Jeff Garzik @ 2015-06-18 22:52 UTC (permalink / raw)
  To: Mark Friedenbach;  Bitcoin Development, Gavin Andresen

[-- Attachment #1: Type: text/plain, Size: 1809 bytes --]

On Thu, Jun 18, 2015 at 3:33 PM, Mark Friedenbach <mark@friedenbach•org>
wrote:

> On Thu, Jun 18, 2015 at 2:58 PM, Jeff Garzik <jgarzik@bitpay•com> wrote:
>
>>
>> The whole point is getting out in front of the need, to prevent
>> significant negative impact to users when blocks are consistently full.
>>
>> To do that, you need to (a) plan forward, in order to (b) set a hard fork
>> date in the future.
>>
>
> Or alternatively, fix the reasons why users would have negative
> experiences with full blocks, chiefly:
>
>   * Get safe forms of replace-by-fee and child-pays-for-parent finished
> and in 0.12.
>   * Develop cross-platform libraries for managing micropayment channels,
> and get wallet authors to adopt
>   * Use fidelity bonds, solvency proofs, and other tricks to minimize the
> risk of already deployed off-chain solutions as an interim measure until:
>   * Deploy soft-fork changes for truly scalable solutions like Lightning
> Network.
>
> Not raising the block size limit does not mean doing nothing to solve the
> problem.
>

This is a long, unreasonable list of work.  None of this exists and it
equates to "upgrade all wallets and websites everywhere"  It requires all
exchanges, payment processors, merchants, etc. to  - basically everybody
but miners - to update.

It is a far, far larger amount of work to write, test and deploy than
simply increasing the block size limit.

Think through roll-out of these ambitious suggestions, before suggesting as
an alternative!

Not a realistic alternative except in an alternate universe where (a)
developer work at all companies is cost free, plus (b) we can pause the
business universe while we wait for The Perfect Solution.










-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.      https://bitpay.com/

[-- Attachment #2: Type: text/html, Size: 2863 bytes --]

^ permalink raw reply	[|nested] 60+ messages in thread
2015-06-18 22:52                               ` Jeff Garzik

  
From: odinn @ 2015-06-18 23:25 UTC (permalink / raw)
  To: Jeff Garzik, Mark Friedenbach;  Bitcoin Development, Gavin Andresen

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Regarding the bit on "getting out in front of the need, to prevent
significant negative impacts to users" I had suggested the following:

On 06/18/2015 03:52 PM, Jeff Garzik wrote:
> On Thu, Jun 18, 2015 at 3:33 PM, Mark Friedenbach
> <mark@friedenbach•org <mailto:mark@friedenbach•org>> wrote:
> 
> On Thu, Jun 18, 2015 at 2:58 PM, Jeff Garzik <jgarzik@bitpay•com 
> <mailto:jgarzik@bitpay•com>> wrote:
> 
> 
> The whole point is getting out in front of the need, to prevent 
> significant negative impact to users when blocks are consistently
> full.


My thoughts on that:

Possible scope narrowing to one of the following concepts (but please,
someone tell me if this "scope narrowing" is unwise, not timely, or if
there is some other factors that would make it just stupid right now
because other things are in the works or whatever:

~ Jeff Garzik, with respect to his BIP 100 (note Evan Mo, CEO of
Huobi's mining project Digcoin, clarified that the big Chinese mining
pools consider further adjustments to the protocol beyond the
suggested 8 MB block size limit adjustment — such as the Bitcoin core
developer Jeff Garzik's BIP-100 draft — to be feasible)
   ~ Adam Back, with a simplified soft-fork one-way peg
   ~ Gavin Andresen, developing an 8 MB block size limit adjustment in
the context of Core (as an example) with one or more of the above
authors rather than focusing on XT. (This is a big assumption but,
roll with it)

All of this assumes that developer(s) are willing to abandon
intentionally contentious proposals such as the "hard fork to XT w/ 20
MB," remain within the context of Core and be reasonable.

Here I am being aware of the fact that "Pushing a hard fork in the
face of such controversy is a folly, a danger to the network, and that
deserves to be said." - Wladimir J. van der Laan
https://github.com/bitcoin/bitcoin.org/pull/894#issuecomment-112113917


> 
> To do that, you need to (a) plan forward, in order to (b) set a 
> hard fork date in the future.
> 
> 
> Or alternatively, fix the reasons why users would have negative 
> experiences with full blocks, chiefly:
> 
> * Get safe forms of replace-by-fee and child-pays-for-parent 
> finished and in 0.12. * Develop cross-platform libraries for
> managing micropayment channels, and get wallet authors to adopt *
> Use fidelity bonds, solvency proofs, and other tricks to minimize
> the risk of already deployed off-chain solutions as an interim
> measure until: * Deploy soft-fork changes for truly scalable
> solutions like Lightning Network.
> 
> Not raising the block size limit does not mean doing nothing to 
> solve the problem.
> 
> 
> This is a long, unreasonable list of work.  None of this exists and
> it equates to "upgrade all wallets and websites everywhere"  It
> requires all exchanges, payment processors, merchants, etc. to  -
> basically everybody but miners - to update.
> 
> It is a far, far larger amount of work to write, test and deploy
> than simply increasing the block size limit.
> 
> Think through roll-out of these ambitious suggestions, before
> suggesting as an alternative!
> 
> Not a realistic alternative except in an alternate universe where
> (a) developer work at all companies is cost free, plus (b) we can
> pause the business universe while we wait for The Perfect
> Solution.
> 
> 
> 


Something else I wanted to point out here in this thread is the
subject of the problem of "developers going off the deep end" which is
what started this thread:

Suppose you have a developer with full commit access who happens to
start threatening to revoking the other developers' commit access on
the repository, or that person doesn't even threaten, one day it just
happens.

What do you have then?  Peter Todd has stated that all one "would
achieve by that sabotage is setting a key-value pair in a centralised
registry."  But is that what we want?

The answer, obviously, is no.

This leads to other questions. What technical mechanisms exist to keep
developers from (in some dubious emotional or psycho state) to just
going off the deep and doing exactly what has been described above, if
they have full commit access?  Is there a process whereby that can't
actually happen unless another developer provides a signature (e.g. a
multisignature type of process)?  What keeps bitcoin safe from "The
Hearn Threat?"

If nothing does, then how would you change that?

And go ahead and tell me if these are dumb questions and I should just
be quiet, but if they are, please do explain why they are such dumb
questions.

> 
> 
> 
> 
> 
> 
> 
> -- Jeff Garzik Bitcoin core developer and open source evangelist 
> BitPay, Inc.      https://bitpay.com/
> 
> 
> ----------------------------------------------------------------------
- --------
>
> 
> 
> 
> _______________________________________________ Bitcoin-development
> mailing list Bitcoin-development@lists•sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> 

- -- 
http://abis.io ~
"a protocol concept to enable decentralization
and expansion of a giving economy, and a new social good"
https://keybase.io/odinn
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVg1OFAAoJEGxwq/inSG8COpAIAJrH9Uj9bcKr+UUR7ePV6/Yj
MmNTY2VKAtiQhwHM+Mqk2VvQANs7/uRBdZjzGnw1NRcca/m8Q0yZUHQiP8avCUOE
3MHqGviYjfeJdu1pcf+PO2pAImM5FCFdrfbbiWUt+ZoOKTxZjsLtF4RE+mc13AXJ
dktvy6SFdvQUgEx8pdXEDpmaUSYUr7syFP4sgHZmyMlhvCsXyE/8dC3sZTzEpVnC
xy1dyBmXHPW3W4FfBSblwwWgJWMcIcGJn8OLQKK5pni/iSVL6IMoRI/MLwOJdRr4
lr83g9FR/qxMqAT9UIZtATnePlkkWPU1szvak/tU/49fGioyYOF4b4KPg/bHYSc=
=hBcE
-----END PGP SIGNATURE-----



 permalink raw reply	[|nested]
2015-06-18 22:33                             ` Mark Friedenbach
  2015-06-18 22:52                               ` Jeff Garzik
  2015-06-18 23:16                               ` Ross Nicoll

  2015-06-19  5:59                                 ` Eric Lombrozo
  2015-06-19  9:37                               ` Mike Hearn
  
From: Chris Pacia @ 2015-06-19  0:57 UTC (permalink / raw)
  To: bitcoin-development

[-- Attachment #1: Type: text/plain, Size: 1395 bytes --]

On 06/18/2015 06:33 PM, Mark Friedenbach wrote:
>
>   * Get safe forms of replace-by-fee and child-pays-for-parent
> finished and in 0.12.
>   * Develop cross-platform libraries for managing micropayment
> channels, and get wallet authors to adopt
>   * Use fidelity bonds, solvency proofs, and other tricks to minimize
> the risk of already deployed off-chain solutions as an interim measure
> until:
>   * Deploy soft-fork changes for truly scalable solutions like
> Lightning Network.

One of my biggest concerns is that these solutions (lightning network in
particular) could end up being worse, in terms of decentralization, than
would be a bitcoin network using larger blocks. We don't exactly know
what the economies of scale are for pay hubs and could very well end up
with far fewer hubs than nodes at any conceivable block size.

Of course, it could also turn out to be fantastic, but it seems like an
enormous gamble to basically force everyone in the ecosystem to
collectively spend millions of dollars upgrading to Lightning /and then/
see whether it's actually an improvement in terms of decentralization.

To me, a much more sane approach would be to allow people to voluntarily
opt in to those other solutions after we've had an opportunity to
experiment with them and see how they actually function in practice, but
that can't happen if the network runs out of capacity first.


[-- Attachment #2: Type: text/html, Size: 1973 bytes --]

 permalink raw reply	[|nested]
2015-06-19  0:57                               ` Chris Pacia

  
From: Eric Lombrozo @ 2015-06-19  5:59 UTC (permalink / raw)
  To: Chris Pacia;  bitcoin-development


[-- Attachment #1.1: Type: text/plain, Size: 5272 bytes --]

I don’t think the issue is between larger blocks on the one hand and things like lightning on the other - these two ideas are quite orthogonal.

Larger blocks aren’t really about addressing basic scalability concerns - for that we’ll clearly need architectural and algorithmic improvements…and will likely need to move to a model where it isn’t necessary for everyone to validate everyone else’s latte purchases. Larger blocks might, at best, keep the current system chugging along temporarily - although I’m not sure that’s necessarily such a great thing…we need to create a fee market sooner or later, and until we do this, block size issues will continue to crop up again and again and economic incentives will continue to be misplaced. It would be nice to have more time to really develop a good infrastructure for this…but without real market pressures, I’m not sure it will happen at all. Necessity is the mother of invention, after all. The question is how to introduce a fee market smoothly and with the overwhelming consensus of the community - and that's where it starts to get tricky.

——

On a separate note, as several others have pointed out in this thread (but I wanted to add my voice to this as well), maintenance of source code repositories is NOT the real issue here. The bitcoin/bitcoin project on github is a reference implementation of the Satoshi protocol…but it is NOT the only implementation…and it wasn’t really meant to be. Anyone is free to fork it, extend it, improve upon it, or create an entirely new network with its own genesis block…a separate cryptoledger.

The real issue regarding XT is NOT the forking of source code nor issues surrounding commit access to repositories. The real issue is the *forking of a cryptoledger*.

Open source repositories are meant to be forked - in fact, it is often encouraged. It is also encouraged that improvements be submitted for review and possibly merged back into the parent repository…although this doesn’t always happen.

However, we currently have no mechanisms in place to support merging of forked cryptoledgers. Software, and most other forms of digital content, generally increases in value with more copies made. However, money is scarce…by design. The entire value of the assets of a decentralized cryptoledger rests on the assumption that nobody can just unilaterally fork it and change the rules. Yes, convincing other people to do things a certain way is HARD…yes, it can be frustratingly slow…I’ve tried to push for many changes to the Bitcoin network…and have only succeeded a very small number of times. And yes, it’s often been quite frustrating. But trying to unilaterally impose a change of consensus rules for an existing cryptoledger sets a horrendous precedent…this isn’t just about things like block size limits, which is a relatively petty issue by comparison.

It would be very nice to have a similar workflow with consensus rule evolution as we do with most other open source projects. You create a fork, demonstrate that your ideas are sound by implementing them and giving others something that works so they can review them, and then merge your contributions back in. However, the way Bitcoin is currently designed, this is unfortunately impossible to do this with consensus rules. Once a fork, always a fork - a.k.a. altcoins. Say what you will about how most altcoins are crap - at least most of them have the decency of starting with a clean ledger.


- Eric Lombrozo


> On Jun 18, 2015, at 5:57 PM, Chris Pacia <ctpacia@gmail•com> wrote:
> 
> On 06/18/2015 06:33 PM, Mark Friedenbach wrote:
>> 
>>   * Get safe forms of replace-by-fee and child-pays-for-parent finished and in 0.12.
>>   * Develop cross-platform libraries for managing micropayment channels, and get wallet authors to adopt
>>   * Use fidelity bonds, solvency proofs, and other tricks to minimize the risk of already deployed off-chain solutions as an interim measure until:
>>   * Deploy soft-fork changes for truly scalable solutions like Lightning Network.
> 
> One of my biggest concerns is that these solutions (lightning network in particular) could end up being worse, in terms of decentralization, than would be a bitcoin network using larger blocks. We don't exactly know what the economies of scale are for pay hubs and could very well end up with far fewer hubs than nodes at any conceivable block size.
> 
> Of course, it could also turn out to be fantastic, but it seems like an enormous gamble to basically force everyone in the ecosystem to collectively spend millions of dollars upgrading to Lightning and then see whether it's actually an improvement in terms of decentralization.
> 
> To me, a much more sane approach would be to allow people to voluntarily opt in to those other solutions after we've had an opportunity to experiment with them and see how they actually function in practice, but that can't happen if the network runs out of capacity first.
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[-- Attachment #1.2: Type: text/html, Size: 7089 bytes --]

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 842 bytes --]

 permalink raw reply	[|nested]
2015-06-18 22:33                             ` Mark Friedenbach
                                                 ` (2 preceding siblings ...)
  2015-06-19  0:57                               ` Chris Pacia

  2015-06-19  9:53                                 ` Benjamin
                                                   ` (3 more replies)
  
From: Mike Hearn @ 2015-06-19  9:37 UTC (permalink / raw)
  To: Mark Friedenbach;  Bitcoin Development, Gavin Andresen

[-- Attachment #1: Type: text/plain, Size: 1301 bytes --]

>
> Or alternatively, fix the reasons why users would have negative
> experiences with full blocks
>

It's impossible, Mark. *By definition* if Bitcoin does not have sufficient
capacity for everyone's transactions, some users who were using it will be
kicked out to make way for the others. Whether that happens in some kind of
stable organised way or (as with the current code) a fairly chaotic way
doesn't change the fundamental truth: *some users will find their bitcoin
savings have become uneconomic to spend*.

Here's a recent user complaint that provides a preview of coming
attractions:

https://www.reddit.com/r/Bitcoin/comments/39r3bi/breadwallet_asking_me_to_pay_over_10_network_fee/

Hello, I'm just trying to send my small Sarutobi-tips stash (12,159 bits)
> onto a paper wallet. When I try to send it, a window pops up stating
> "insufficient funds for bitcoin network fee, reduce payment amount by 1,389
> bits?" This would be a fee of $0.32 to send my $2.82, leaving me with $2.50.


These sorts of complaints will get more frequent and more extreme in the
coming months. I realise that nobody at Blockstream is  in the position of
running an end user facing service, but many of us are .... and we will be
the ones that face the full anger of ordinary users as Bitcoin hits the
wall.

[-- Attachment #2: Type: text/html, Size: 2195 bytes --]

 permalink raw reply	[|nested]
2015-06-18 22:33                             ` Mark Friedenbach
                                                 ` (2 preceding siblings ...)
  2015-06-19  0:57                               ` Chris Pacia

  2015-06-19  9:53                                 ` 
                                                   ` 
  
From: Mike Hearn @ 2015-06-19  9:37 UTC (permalink / raw)
  To: Mark Friedenbach;  Bitcoin Development, Gavin Andresen

[-- Attachment #1: Type: text/plain, Size: 1301 bytes --]

>
> Or alternatively, fix the reasons why users would have negative
> experiences with full blocks
>

It's impossible, Mark. *By definition* if Bitcoin does not have sufficient
capacity for everyone's transactions, some users who were using it will be
kicked out to make way for the others. Whether that happens in some kind of
stable organised way or (as with the current code) a fairly chaotic way
doesn't change the fundamental truth: *some users will find their bitcoin
savings have become uneconomic to spend*.

Here's a recent user complaint that provides a preview of coming
attractions:

https://www.reddit.com/r/Bitcoin/comments/39r3bi/breadwallet_asking_me_to_pay_over_10_network_fee/

Hello, I'm just trying to send my small Sarutobi-tips stash (12,159 bits)
> onto a paper wallet. When I try to send it, a window pops up stating
> "insufficient funds for bitcoin network fee, reduce payment amount by 1,389
> bits?" This would be a fee of $0.32 to send my $2.82, leaving me with $2.50.


These sorts of complaints will get more frequent and more extreme in the
coming months. I realise that nobody at Blockstream is  in the position of
running an end user facing service, but many of us are .... and we will be
the ones that face the full anger of ordinary users as Bitcoin hits the
wall.

[-- Attachment #2: Type: text/html, Size: 2195 bytes --]

 permalink raw reply	[|nested]
2015-06-19  9:53                                 ` Benjamin

  2015-06-19 10:19                                   ` Mike Hearn
  
From: GC @ 2015-06-19 10:08 UTC (permalink / raw)
  To: Benjamin, Mike Hearn;  Bitcoin Development, Gavin Andresen

Benjamin,

Timeframe for network congestion and users experiencing service
degradation => between now and middle of next year.

Timeframe for transaction fees topping block reward fees => many years in
the future, based on current ratio of block reward to fees.

What is the more pressing requirement now? A working ³fee market² or a
reliable, useful payment network that scales without falling over in the
next 2-3 years.

On 19/6/15 4:53 pm, "Benjamin" <benjamin.l.cordes@gmail•com> wrote:

>Yeah, but increasing block-size is not a longterm solution. Necessary
>higher fees are a logical consequence of lower subsidies. Bitcoin was
>basically free to use at the beginning because miners got paid with
>new coins at  the expense of those who already hold coins. Eventually
>there needs to be a mechanism which matches supply and demand.
>
>On Fri, Jun 19, 2015 at 11:37 AM, Mike Hearn <mike@plan99•net> wrote:
>>> Or alternatively, fix the reasons why users would have negative
>>> experiences with full blocks
>>
>>
>> It's impossible, Mark. By definition if Bitcoin does not have sufficient
>> capacity for everyone's transactions, some users who were using it will
>>be
>> kicked out to make way for the others. Whether that happens in some
>>kind of
>> stable organised way or (as with the current code) a fairly chaotic way
>> doesn't change the fundamental truth: some users will find their bitcoin
>> savings have become uneconomic to spend.
>>
>> Here's a recent user complaint that provides a preview of coming
>> attractions:
>>
>> 
>>https://www.reddit.com/r/Bitcoin/comments/39r3bi/breadwallet_asking_me_to
>>_pay_over_10_network_fee/
>>
>>> Hello, I'm just trying to send my small Sarutobi-tips stash (12,159
>>>bits)
>>> onto a paper wallet. When I try to send it, a window pops up stating
>>> "insufficient funds for bitcoin network fee, reduce payment amount by
>>>1,389
>>> bits?" This would be a fee of $0.32 to send my $2.82, leaving me with
>>>$2.50.
>>
>>
>> These sorts of complaints will get more frequent and more extreme in the
>> coming months. I realise that nobody at Blockstream is  in the position
>>of
>> running an end user facing service, but many of us are .... and we will
>>be
>> the ones that face the full anger of ordinary users as Bitcoin hits the
>> wall.
>>
>> 
>>-------------------------------------------------------------------------
>>-----
>>
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists•sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>
>
>--------------------------------------------------------------------------
>----
>_______________________________________________
>Bitcoin-development mailing list
>Bitcoin-development@lists•sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/bitcoin-development





 permalink raw reply	[|nested]
2015-06-19  9:53                                 ` Benjamin
  2015-06-19 10:08                                   ` GC

  
From: Mike Hearn @ 2015-06-19 10:19 UTC (permalink / raw)
  To: Benjamin;  Bitcoin Development, Gavin Andresen

[-- Attachment #1: Type: text/plain, Size: 2063 bytes --]

>
> Yeah, but increasing block-size is not a longterm solution.


Are you sure? That sort of statement is hard to answer because it doesn't
say what you think long term is, or how much you expect Bitcoin to grow.

Satoshi thought it was a perfectly fine long term solution because he
thought hardware would get cheaper as fast or faster than Bitcoin would
grow. You may disagree with him, but as we're talking about the future are
you 100% certain he was wrong? I did calculations a long time ago that
suggested even with today's hardware (+some software optimisations) it
would be feasible to keep up with Visa.

Hardware improvements can be unintuitive. There's a spreadsheet here that
lets you play with various parameters.

https://docs.google.com/spreadsheets/d/1PJvrAAOVYVszfRRLhKqd1R9lRiOAImzAfdeb6ajATEY/edit#gid=1451669128

(note: the spreadsheet says avg txn size is 250 bytes, but if you check the
formula for the middle column, it does actually use 500 bytes as the
multiplier hard coded).


> Necessary higher fees are a logical consequence of lower subsidies.
> Bitcoin was basically free to use at the beginning because miners got paid
> with new coins at  the expense of those who already hold coins.
> Eventually there needs to be a mechanism which matches supply and demand.
>

That's not clear either, I'm afraid.

Remember that there's an upper limit on how high Bitcoin fees can go. When
fees become higher than what the banking system charges, many users won't
use Bitcoin for moving money around anymore. Fees cannot really go much
higher than that even if you assume the currency is still attractive for
other reasons, because people would just sell their coins for fiat, move
the fiat, and buy back the coins the other side.

The way mining will be funded in future is an open question. There are
differing proposals. Still, even with a higher hard block size limit,
miners can always refuse to mine transactions that don't include a
particular fee. So if you're worried about this, miners aren't being forced
into any particular policy.

[-- Attachment #2: Type: text/html, Size: 2868 bytes --]

 permalink raw reply	[|nested]
* 
  2015-06-19  9:37                               ` Mike Hearn

  2015-06-19 10:08                                   ` GC
  2015-06-19 10:19                                   ` Mike Hearn
  2015-06-19 10:52                                 ` 
                                                   ` 
  3 siblings, 2 replies; 60+ messages in thread
From: Benjamin @ 2015-06-19  9:53 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Development, Gavin Andresen

Yeah, but increasing block-size is not a longterm solution. Necessary
higher fees are a logical consequence of lower subsidies. Bitcoin was
basically free to use at the beginning because miners got paid with
new coins at  the expense of those who already hold coins. Eventually
there needs to be a mechanism which matches supply and demand.

On Fri, Jun 19, 2015 at 11:37 AM, Mike Hearn <mike@plan99•net> wrote:
>> Or alternatively, fix the reasons why users would have negative
>> experiences with full blocks
>
>
> It's impossible, Mark. By definition if Bitcoin does not have sufficient
> capacity for everyone's transactions, some users who were using it will be
> kicked out to make way for the others. Whether that happens in some kind of
> stable organised way or (as with the current code) a fairly chaotic way
> doesn't change the fundamental truth: some users will find their bitcoin
> savings have become uneconomic to spend.
>
> Here's a recent user complaint that provides a preview of coming
> attractions:
>
> https://www.reddit.com/r/Bitcoin/comments/39r3bi/breadwallet_asking_me_to_pay_over_10_network_fee/
>
>> Hello, I'm just trying to send my small Sarutobi-tips stash (12,159 bits)
>> onto a paper wallet. When I try to send it, a window pops up stating
>> "insufficient funds for bitcoin network fee, reduce payment amount by 1,389
>> bits?" This would be a fee of $0.32 to send my $2.82, leaving me with $2.50.
>
>
> These sorts of complaints will get more frequent and more extreme in the
> coming months. I realise that nobody at Blockstream is  in the position of
> running an end user facing service, but many of us are .... and we will be
> the ones that face the full anger of ordinary users as Bitcoin hits the
> wall.
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>



^ permalink raw reply	[|nested] 60+ messages in thread
2015-06-19  9:37                               ` Mike Hearn
  2015-06-19  9:53                                 ` Benjamin
  2015-06-19 10:52                                 ` Eric Lombrozo

  2015-06-19 12:26                                   ` GC
  2015-06-19 11:48                                 ` Brooks Boyd
  
From: Jorge Timón @ 2015-06-19 11:31 UTC (permalink / raw)
  To: Mike Hearn;  Bitcoin Development, Gavin Andresen

On Fri, Jun 19, 2015 at 11:37 AM, Mike Hearn <mike@plan99•net> wrote:
>> Or alternatively, fix the reasons why users would have negative
>> experiences with full blocks
>
>
> It's impossible, Mark. By definition if Bitcoin does not have sufficient
> capacity for everyone's transactions, some users who were using it will be
> kicked out to make way for the others. Whether that happens in some kind of
> stable organised way or (as with the current code) a fairly chaotic way
> doesn't change the fundamental truth: some users will find their bitcoin
> savings have become uneconomic to spend.

He doesn't mean that: he means solving the mempool and crashes and
hitting the limit would have.
If the chain has limited size it is a scarce resource and people have
to bid for it: nothing unexpected or wrong about that.
Of course, people that believe the limit should be completely removed
eventually because they don't care about mining being decentralized
(or fail to see the relation between the two) may have a very
different view about this.

On Fri, Jun 19, 2015 at 12:08 PM, GC <slashdevnull@hotmail•com> wrote:
> Timeframe for transaction fees topping block reward fees => many years in
> the future, based on current ratio of block reward to fees.

Do you think that this ratio is unrelated to an abundant (non-scarce)
block size?
When is the right time to allow space pressure to rise that ratio?
When the subsidy is at 1.5625, for example, it may be too late to
start a non-catastrophic transition from subsidies to fees.
I don't claim to know that, but it's something that worries me.
No matter how many people say "that's too far away in the future to
worry about it", I still worry about it and I'm sure more people do.
What if "when it's time to care about it" we discover that we should
have started to do things about it long ago to minimize the risks of
this transition?



 permalink raw reply	[|nested]
2015-06-19  9:37                               ` Mike Hearn
                                                   ` (2 preceding siblings ...)
  2015-06-19 11:31                                 ` Jorge Timón

  2015-06-21 14:45                                   ` Owen Gunden
  
From: Brooks Boyd @ 2015-06-19 11:48 UTC (permalink / raw)
  To: Bitcoin Development

[-- Attachment #1: Type: text/plain, Size: 1507 bytes --]

On Fri, Jun 19, 2015 at 4:37 AM, Mike Hearn <mike@plan99•net> wrote:

> Or alternatively, fix the reasons why users would have negative
>> experiences with full blocks
>>
>
> It's impossible, Mark. *By definition* if Bitcoin does not have
> sufficient capacity for everyone's transactions, some users who were using
> it will be kicked out to make way for the others. Whether that happens in
> some kind of stable organised way or (as with the current code) a fairly
> chaotic way doesn't change the fundamental truth: *some users will find
> their bitcoin savings have become uneconomic to spend*.
>
> Here's a recent user complaint that provides a preview of coming
> attractions:
>
>
> https://www.reddit.com/r/Bitcoin/comments/39r3bi/breadwallet_asking_me_to_pay_over_10_network_fee/
>
> Hello, I'm just trying to send my small Sarutobi-tips stash (12,159 bits)
>> onto a paper wallet. When I try to send it, a window pops up stating
>> "insufficient funds for bitcoin network fee, reduce payment amount by 1,389
>> bits?" This would be a fee of $0.32 to send my $2.82, leaving me with $2.50.
>
>
>
Has there been any talk about reducing the time between blocks? If blocks
were allowed to come twice as fast, they would be able to clear pending
transactions in the mempool the same as if the block size doubled, but
would allow mining to stay more decentralized since miners wouldn't be
working on such large-scale blocks? It would still take more storage space
to store the blockchain, though.

Brooks

[-- Attachment #2: Type: text/html, Size: 2730 bytes --]

 permalink raw reply	[|nested]
2015-06-19 11:31                                 ` Jorge Timón

  
From: GC @ 2015-06-19 12:26 UTC (permalink / raw)
  To: Jorge Timón, Mike Hearn;  Bitcoin Development, Gavin Andresen


>When is the right time to allow space pressure to rise that ratio?
>When the subsidy is at 1.5625, for example, it may be too late to

I don¹t believe we have to decide, the miners will do that and are doing
that already.

>start a non-catastrophic transition from subsidies to fees.
>I don't claim to know that, but it's something that worries me.
>No matter how many people say "that's too far away in the future to
>worry about it", I still worry about it and I'm sure more people do.
>What if "when it's time to care about it" we discover that we should
>have started to do things about it long ago to minimize the risks of
>this transition?

Hmmm. What should be the price of an email? How much should DARPA have
charged for using TCP/IP?

I see a lot of well-paid, first-world technologists arguing for commercial
returns on a nacent protocol which could could offer benefits to the
unbanked.
Is that really the vision: to (re)build a de-centralized Paypal with
slightly cheaper fees and cool hooks into off-chain commercial systems
providing profits for the already rich?

>--------------------------------------------------------------------------
>----
>_______________________________________________
>Bitcoin-development mailing list
>Bitcoin-development@lists•sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/bitcoin-development





 permalink raw reply	[|nested]
2015-06-19 11:48                                 ` Brooks Boyd

  
From: Owen Gunden @ 2015-06-21 14:45 UTC (permalink / raw)
  To: bitcoin-development

On 06/19/2015 07:48 AM, Brooks Boyd wrote:
> Has there been any talk about reducing the time between blocks? If
> blocks were allowed to come twice as fast, they would be able to clear
> pending transactions in the mempool the same as if the block size
> doubled, but would allow mining to stay more decentralized since miners
> wouldn't be working on such large-scale blocks? It would still take more
> storage space to store the blockchain, though.

https://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg07663.html



 permalink raw reply	[|nested]