blockchain - 解释文档中的tendermint 死锁
问题描述
我在tendermint docs 中读到了这个:
请注意,在 Commit 期间无法向 Tendermint 发送事务 >- 如果您的应用程序在 Commit 期间尝试向 Tendermint 发送 /broadcast_tx,它将 > 将死锁。
这是否意味着如果我的应用程序在前一个事务处于提交阶段时发送另一个事务,该应用程序将停止工作?
解决方案
如果处理 Commit 消息的 ABCI 应用逻辑发送一个broadcast_tx_sync
orbroadcast_tx_commit
并在继续之前等待响应,它将死锁。
执行这些 broadcast_tx 调用涉及获取在 Commit 调用期间持有的锁,因此这是不可能的。
如果您同时调用 broadcast_tx 端点,那没问题,它只是不能成为 Commit 消息的顺序逻辑的一部分
推荐阅读
- c++ - 如何使用 imebra 将 RAW 图像转换为 DICOM 图像?
- c# - C# 更新列表中的对象
- java - 是否可以将方法名称存储在数组中,并计算它被调用了多少次?
- gnuradio - 带有 Ettus USRP B210 的 gnuradio 中带有 LO 偏移的 2 Rx 不起作用
- android-studio - android studio 终端不接受我的命令
- excel - 组织架构亲子关系
- sql - to_date 在 oracle 中创建视图时未验证用户输入值
- matlab - 如何消除 fzero 命令 Matlab 的警告输出
- variables - Powershell 向注册表数据输出添加空格
- c# - C#中的RSA加密和nodejs中的解密