gpt4 book ai didi

tendermint - 关于tendermint区 block 创建间隔的困惑

转载 作者:行者123 更新时间:2023-12-02 00:30:26 25 4
gpt4 key购买 nike

Tendermint 似乎缺少区 block 创建时间的描述......
他们创建默认配置文件为

timeout_propose = 3000
timeout_propose_delta = 500
timeout_prevote = 1000
timeout_prevote_delta = 500
timeout_precommit = 1000
timeout_precommit_delta = 500
timeout_commit = 5000

我阅读了文档和代码。

所以我猜测,如果tendermint在一轮中成功创建区 block ,
timeout_propose + timeout_prevote + timeout_precommit = 5s 并等待 timeout_commit 5s...
所以区 block 提交会在5秒~10秒内发生,因此下一个区 block 共识会在10秒后开始。

如果tendermint在两轮中成功创建区 block ,
(timeout_propose + timeout_prevote + timeout_precommit) + (timeout_propose + timeout_propose_delta + timeout_prevote + timeout_prevot_delta + timeout_precommit + timeout_precommit_delta) = 5s + 6.5s = 11.5s 并等待 timeout_commit 5s...
所以区 block 提交发生在11.5s~16.5s之间,因此下一个区 block 共识会在16.5s后开始。我猜tendermint 会为每一轮添加增量超时。

我的猜测对吗?如果不是,配置文件中的超时到底是什么意思?

最佳答案

感谢您的提问。

https://tendermint.com/docs/tendermint-core/running-in-production.html中有关于超时的各种信息。

您还可以在规范中找到更详细的技术说明:https://arxiv.org/abs/1807.04938

请注意,在成功的一轮中,无论什么情况,我们绝对等待的唯一超时是timeout_commit

以下是超时的简要摘要:

  • timeout_propose = 在预先投票 nil 之前等待提案 block 的时间
  • timeout_propose_delta = 每轮 timeout_propose 增加多少
  • timeout_prevote = 在收到“任何东西”的 +2/3 预投票(即不是单个区 block 或 nil)后我们等待的时间
  • timeout_prevote_delta = 每轮 timeout_prevote 增加多少
  • timeout_precommit = 在收到“任何内容”(即不是单个 block 或 nil)的 +2/3 预提交后等待的时间
  • timeout_precommit_delta = 每轮 timeout_precommit 增加多少
  • timeout_commit = 提交区 block 后、开始新高度之前等待的时间(这使我们有机会收到更多预提交,即使我们已经有 +2/3)

关于tendermint - 关于tendermint区 block 创建间隔的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52790981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com