Skip to content

Conversation

@sipa
Copy link
Member

@sipa sipa commented Mar 1, 2016

  • Add start time
  • Specify the state transitions less ambiguously.
  • Add a state diagram.

luke-jr added a commit that referenced this pull request Mar 1, 2016
Various changes to BIP9
@luke-jr luke-jr merged commit 976d585 into bitcoin:master Mar 1, 2016
@sipa
Copy link
Member Author

sipa commented Mar 1, 2016

@gmaxwell @rustyrussell @CodeShark @petertodd Feel free to comment here

@sdaftuar
Copy link
Member

sdaftuar commented Mar 1, 2016

@sipa I have a question about this sentence:

Having more than 29 available bits for parallel soft forks does not add anything anyway, as the (nVersion >= 3) requirement already makes that impossible.

This statement seems incorrect: couldn't we just use 01 as the first two bits, which would satisfy all prior ISM rollouts while also leaving 30 bits available for parallel softfork deployment? Am I missing something?

@sipa
Copy link
Member Author

sipa commented Mar 1, 2016 via email

@jtimon
Copy link
Contributor

jtimon commented Mar 1, 2016

Yeah, that was very confusing. On the other hand, from what I understand there's still only 29 bits available since the first bit (aka hardfork bit) is still invalid and the other zero in the prefix is reserved for future use.

@jtimon
Copy link
Contributor

jtimon commented Mar 1, 2016

Also, I insist the threshold is per-chain while the start time, bit and time out are per-deployment.
@sipa this is what you have implemented. I challenge you to implement a per-deployment threshold without completely breaking the warning check.

# '''LOCKED_IN''' for one retarget period after the first retarget period with STARTED blocks of which at least threshold have the associated bit set in nVersion.
# '''ACTIVE''' for all blocks after the LOCKED_IN retarget period.
# '''FAILED''' for one retarget period past the timeout time, if LOCKED_IN was not reached.
# '''ABANDONED''' for all blocks after the FAILED retarget period.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this additional state? isn't enough that it fails that it also has to be abandoned?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think having a retargeting period where the bit cannot be reused is a good idea. Having an extra state can force this.

@CodeShark
Copy link
Contributor

@sipa I gave it a once over and I really like what you did.

@FelixWeis
Copy link

really like the proposal. Maybe just make it a little more clear how/if a bit becomes available again once it reached one of the final stages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants