Monday, April 22, 2024

comfortable fork – How do BIP8 and BIP9 differ, how are they alike?

Early comfortable forks every had their very own activation methodology included within the proposal which relied on flagdays or block model signaling. The latter solely allowed a single proposal to be thought-about concurrently because it relied on incrementing the block model.

BIP9 proposed an activation commonplace which allowed a number of proposals to be thought-about on the identical time. Delicate forks that have been activated utilizing BIP9 have been coordinated by having a supermajority of hash energy sign readiness for the improve (historically 95%). Miners are tasked to evaluate the community’s uptake of the proposal and sign readiness by setting particular bits within the model subject of their blocks. The miners readiness sign is measured during the last issue interval at every retargeting peak. For instance, the segwit comfortable fork and the CHECKSEQUENCEVERIFY comfortable fork that activated BIP68, BIP112, and BIP113 used BIP9-based activation.

BIP8 is a variant and the successor of BIP9. BIP8 makes use of block heights quite than timestamps to sure the signaling window, and offers the choice to both fail or lock-in the improve on the finish of the signaling window. When lockinontimeout: true is about, nodes operating the activation code solely settle for blocks that sign readiness within the final issue interval earlier than the timeoutheight. This forces the improve to lock-in to the top of the signaling window. In distinction, BIP9 would all the time fail after the signaling window handed with out activation, so BIP9 labored equivalently to BIP8 with lockinontimeout: false.

BIP8 state transition graph
through BIP8

Per BIP8, a proposal would get activated through the next steps:

  1. The signaling interval commences at start_height by switching from DEFINED to STARTED. The start_height can be set at the very least a month after launch of the activation code. Word that the timeout_height should be the top of an issue epoch.

  2. At every issue retargeting, each node operating the activation code independently checks whether or not the signaling threshold was met within the concluded issue interval. There are three potential state transactions from STARTED:

    1. If the edge is just not met at timeout_height, the
      proposal settles within the last FAILED state on the finish of the signaling interval.
    2. If the signaling threshold was met, the proposal transitions to the
      LOCKED_IN state.
    3. If the proposal forces activation through lockinontimeout: true and
      the final issue epoch of the signaling interval is reached with
      the proposal in STARTED state, the proposal transitions to MUST_SIGNAL. This causes upgraded nodes to reject any blocks that do not sign readiness.
  3. The proposal stays in LOCKED_IN
    state for one issue interval after which transitions to the ultimate ACTIVE state. Upgraded nodes now implement the comfortable fork guidelines on the community.

Related Articles


Please enter your comment!
Please enter your name here

Latest Articles