首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于tendermint块创建间隔的混淆

关于tendermint块创建间隔的混淆
EN

Stack Overflow用户
提问于 2018-10-13 16:18:35
回答 1查看 409关注 0票数 2

Tendermint似乎缺少对块创建时间的描述……

它们将默认配置文件创建为

代码语言:javascript
复制
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在一轮中成功创建了积木,

timeout_propose + timeout_prevote + timeout_precommit = 5s并等待timeout_commit 5s...

因此,块提交发生在5s~10s,因此下一个块共识在10s之后开始。

如果tendermint在两轮中成功创建积木,

(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...

因此,块提交发生在11.5s~16.5s,因此下一个块共识在16.5s之后开始。我猜tendermint在每一轮中都会增加增量暂停。

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

EN

回答 1

Stack Overflow用户

发布于 2018-10-19 04:01:11

谢谢你的问题。

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

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

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

以下是超时的简要摘要:

  • timeout_propose =我们在预投票前等待提案块的时间nil
  • timeout_propose_delta =每个round
  • timeout_prevote增加了多少timeout_propose =我们收到“任何”的预投票+2/3后等待的时间(即不是一个单独的块或nil)
  • timeout_prevote_delta =每个round
  • timeout_precommit的timeout_prevote增加了多少=我们在收到“任何东西”的+2/3预提交后等待了多长时间(即,不是单个数据块或nil)
  • timeout_precommit_delta =每个round
  • timeout_commit的timeout_precommit增加了多少=我们在提交一个数据块后,在开始新的高度之前等待了多长时间(这使我们有机会收到更多的预提交,即使我们已经有了+2/3)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52790981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档