[...]
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.
What about lying? If enough miners claim to support larger blocks but actually don't, then part of the network will waste time producing blocks that won't be built on. IMO, if we want to put the power directly in miners hands it would be better to raise the limit entirely. However, to do so we would need to test the crap out of everything to be reasonably sure that there aren't bugs that are only uncovered by larger blocks like what happened when the soft limit was raised to 1MB.