Оповещение и активация по стандарту BIP-9. Продолжение

Несмотря на то что биты оповещения можно повторно использовать или рециклировать даже до завершения периода голосования (подтверждения), авторы стандарта В1Р-9 рекомендуют повторно использовать эти биты только при реальной необходимости. Дело в том, что из-за ошибок в более старом программном обеспечении может проявляться непредсказуемое поведение. Если говорить кратко, не следует обращаться к повторному использованию до тех пор, пока не будет полностью завершен первоначальный цикл использования всех 29 битов.

 

Предлагаемые изменения определяются структурой данных, содержащей следующие поля:

name — краткое описание характерных отличительных признаков конкретного предложения. Чаще всего указывается документ BIP, описывающий предложение, в форме bipN, где N — номер документа BIP;

bit — число от 0 до 28, номер бита в поле версии блока, в котором майнер размещает подтверждение принятия оповещения об этом предложении;

starttime — время (основанное на Median Time Past, МТР) начала действия оповещения, отсчитываемое с момента интерпретации значения бита как оповещения о готовности принять данное предложение;

endtime — время (основанное на МТР), по истечении которого изменение считается отвергнутым, если не было достигнуто пороговое значение активации.

В отличие от BIP-34, стандарт В1Р-9 считает периоды оповещения об активации в целых интервалах на основе периода изменения целевого значения и уровня сложности 2016 блоков. В каждом интервале изменения целевого значения, если общее количество блоков с оповещением о принятии предложения превышает 95% (1916 блоков из 2016), такое предложение будет активировано в следующем интервале изменения целевого значения.

В стандарте BIP-9 приводится диаграмма состояний предложения для наглядного представления состояний и переходов между ними для отдельного предложения.

Сначала предложение находится в состоянии DEFINED, сразу после того, как его параметры известны (определены) в программном обеспечении биткойна. Для блоков с МТР, прошедшим после времени начала, состояние предложения изменяется на STARTED. Если пороговое значение голосования превышено в течение периода изменения целевого значения, а тайм-аут не был исчерпан, то предложение переходит в состояние L0CKED_IN. В следующем периоде изменения целевого значения это предложение становится активным ACTIVE. Предложения остаются в состоянии ACTIVE постоянно после достижения этого состояния. Если тайм-аут истекает ранее достижения порогового значения голосования, то состояние предложения изменяется на FAILED, то есть такое предложение отвергается. Отвергнутые (REJECTED) предложения остаются в этом состоянии постоянно.

Стандарт BIP-9 впервые был реализован для активации функции CHECKSE- QUENCEVERIFY и соответствующих стандартов BIP-68.BIP-112, BIP-113. Это предложение, названное «csv», было успешно активировано в июле 2016 года.