[...]
So
is this a good idea? If there are no obvious "gotchas" then perhaps we should write up a BIP.
I'd be willing to help! But I'd also suggest to just make it about the configurable setting and leave the rest to the user. I think signalling about blocksize has to happen out-of-band for the time being. Because it is potentially a lot of code complexity. And simple IMO beats complex here.
Just make it mandatory to start bitcoind with -maxblocksizelimit (or similar) and have an edit box for bitcoin-qt that has to be filled with a value. The amount of code change should be about the same as BIP101.
Start requesting this value at some switchover date in the future - maybe at the beginning of Gavin's increase schedule. Reason for this: Time for user education on building a function Bitcoin network.
What do you think?
I think that all makes perfect sense, and I agree that simple is better! Perhaps the BIP could only advocate for doing what you said to start, and then there could be a follow-up BIP to do the signalling in the block headers and to add the p2p "block size limit request" messages. The nice thing is that the signalling stuff in the follow-up BIP would have nothing to do with the consensus layer, so it would be much easier to build support for it.
I'd be willing to contribute to this too. Realistically, I couldn't do any serious work on this until mid-September, however. Timing wise, it would be great to have a polished proposal published for the second Scalability Workshop in Hong Kong probably in November or December:
https://scalingbitcoin.org/I'm actually quite excited about this idea. It has a sort of
inevitable feel to it.
I think you guys are on to something here. Could you have an option in the dropdown to choose a dynamic limit that is 1 standard deviation above a 30 day moving average (or use data points of the previous 4320 blocks, which is about 1 month, to calculate variance), or something similar? That way the user could set his limit to stay within a reasonable upper range without restricting usage.