Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Partition nodes with old protocol version from network in advance of hard fork #2775
Nodes running new protocol version can start dropping peers running old protocol version at a given block height in preparation for NU0.
Upstream core implemented something similar by looking at service bits, rather than protocol version, but concept is the same:
Based on discussion:
@daira would like to achieve:
A few tidbits:
During discussion the following mechanism may satisfy (b) and (c) but not (a):
What value should N be? With an expected 24 blocks per hour, setting N to 288 would be approximately ~ 12 hours. A shorter value for N might not be enough time for the engineering team, which is distributed around the world, to work together to respond in time.
It also provides guidance to the ecosystem who will want to know when it's safe to send transactions. Here we are saying it's okay to send transactions in the new format, they will be in the mempool, or you can wait until block H+N is reached.
Related, but should be in another ticket or in spec:
Regarding the mempool:
Consider if a node with new protocol version only has connections to a node with old protocol version, between P and Q, how do you drop the nodes? The behaviour will be the same as a hard fork P=Q unless the dropping logic is non-deterministic or throttled.