We learned something from the Nu 2.0 protocol switch. It is desirable to have a protocol switch date known with certainty well in advance of the switch. Though we had assigned and published August 25 14:00 UTC as that date, it was contingent on getting a 90% consensus on the new protocol. The 90% threshold was not met at the switch date, which meant the actual protocol switch time became unpredictable, as no one could be certain when the 90% threshold would be met.
To avoid an uncertain switch date in the future, we plan to make 90% consensus the sole criteria, with the actual switch date occurring two weeks after 90% consensus is reached to provide a two week window of certainty regarding the switch date. We intend to use this approach for all subsequent Nu and B&C protocol changes.
We will also display a warning in the status bar when the client receives a block with a protocol vote for a version exceeding its own. This means that 4.0 users will receive a warning when others begin to upgrade to 5.0. This will also be employed in the Nu client in 2.1.
We will be tracking the issue here.