Tendermint似乎缺少对块创建时间的描述……
它们将默认配置文件创建为
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在每一轮中都会增加增量暂停。
我猜对了吗?如果不是,那么配置文件中的超时到底是什么意思?
发布于 2018-10-19 04:01:11
谢谢你的问题。
在https://tendermint.com/docs/tendermint-core/running-in-production.html中有各种关于超时的信息
您还可以在规范中找到更详细的技术说明:https://arxiv.org/abs/1807.04938
请注意,在成功的轮次中,无论timeout_commit是什么,我们绝对等待的唯一超时。
以下是超时的简要摘要:
https://stackoverflow.com/questions/52790981
复制相似问题