algorand / algorand/go-algorand

Enable proposing larger forward jumps for block timestamp

未关闭
#5,426 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Team Scytale
主要语言
Go
星标
1.4k
派生
537
平均合并
1 天 7 小时
30 天内合并 PR
18

描述

_(tentative)_

## Problem

Currently, two consecutive block timestamps cannot be more than 25 seconds apart. As a result of this, if the network ever experienced downtime and the block timestamp fell significantly behind real time, it would take time for the timestamp to catch back up to real time.

e.g. if the block timestamp fell 4 hours behind real time, it would take ~45 min to get back to current time:

(4 * 60 * 60 secs) / ((25 - 4) seconds caught up per round) = 685 rounds to catch up.
685*4 = 2740 secs = 45 min

## Solution

If block timestamp is more than 25 seconds behind the proposer's system time, they should be able to propose a larger jump forward. Voters will verify that the proposed block timestamp is within 25(?) seconds of their own system time, and more than 25 seconds beyond the previous block timestamp.
This may require a new mechanism, e.g. a flag that says "I'm proposing a jump in time" to go to this more sophisticated time-incrementing logic.

risk: if we do this, we will introduce a dependency on participants' system times. Our existing sytem does not depend on it.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。