Есть официальный способ справиться с этим?
Текущее время в секундах рассчитывает с 1970 года и составляет 32 бит. Это дает ему максимум 2 ^ 32 секунд = 4294967296 = 136 лет, если это число без знака. Это работает, как 2106.
Так как клиент по умолчанию также ссылка клиента. Было бы целесообразно добавить определенный способ обработки обертки вокруг.
Правило для блоков
1) временная метка не должна быть меньше, чем медиана последних 10 блоков
2) временная метка не должна быть более 2-х часов в будущее
Первое правило заключается в предотвращении путешествие во времени назад и основывается исключительно на блок-цепи. Все прошлые блоки могут быть проверены и все они будут легко встретить правило 2.
Когда шахтер создает блок, он может легко убедиться, что он отвечает как правила, убедившись, что его временная метка, по крайней мере столь же высока как медиана последних 10 блоков.
32 разрядных временных меток во многих компьютерах фактически подписан номер, так что это действительно может идти только до 68 лет (2035).
В спецификации можно определить обертку вокруг события.
Предполагая, что число без знака, если метка времени для блока меньше, чем 0xC0000000 (-MAX_TIME / 2) и предыдущий блок было больше, чем 0x40000000 (MAX_TIME / 2), а затем обернуть вокруг должен быть рассмотрен, чтобы не произошел.
2 ^ 32 должны быть добавлены все метки времени для этого блока и всех последующих блоков отработать фактическое время.
Реальная метка времени = (число обертывание обходные до этого блока) * 2 ^ 32 + (беззнаковое целое) Отметка времени
Это означает, что протокол не нужно будет изменить и 2 правила могут быть сохранены без изменений.