首页 > 解决方案 > 解释文档中的tendermint 死锁

问题描述

我在tendermint docs 中读到了这个:

请注意,在 Commit 期间无法向 Tendermint 发送事务 >- 如果您的应用程序在 Commit 期间尝试向 Tendermint 发送 /broadcast_tx,它将 > 将死锁。

这是否意味着如果我的应用程序在前一个事务处于提交阶段时发送另一个事务,该应用程序将停止工作?

标签: blockchaintendermint

解决方案


如果处理 Commit 消息的 ABCI 应用逻辑发送一个broadcast_tx_syncorbroadcast_tx_commit并在继续之前等待响应,它将死锁。

执行这些 broadcast_tx 调用涉及获取在 Commit 调用期间持有的锁,因此这是不可能的。

如果您同时调用 broadcast_tx 端点,那没问题,它只是不能成为 Commit 消息的顺序逻辑的一部分


推荐阅读