blockchain - Hyperledger Sawtooth 未满足的依赖项交易
问题描述
Sawtooth 交易标头有一个依赖字段,它是一个交易标头数组,需要在处理此交易之前添加到分类帐中。具有未满足依赖关系的事务存储在哪里?它们是存储在第一个接收它们的节点中还是存储在网络中的每个节点中?
解决方案
验证器将传入事务存储在待处理队列中。Validator 使用待处理队列中的事务执行。交易的执行是在创建块或验证块时完成的。向区块添加交易是由共识引擎动作触发的。
交易在到达时被广播到该网络的其他验证器部分。如果事务被评估(失败或成功),它将从待处理队列中删除。如果交易成功,它应该是在块创建期间或块验证期间。如果创建的 Block 由于共识过程而无法提交,则这些 Transactions 将被添加回待处理队列。交易本身没有任何问题,它只是碰巧不是提交的块的一部分。在成功的情况下,当它被提交到一个块时,一个事务在其他方面完全从挂起队列中删除。
当我说交易在验证器处挂起时,当然收到的是批次。验证器在考虑将事务添加到块时会执行依赖性检查。
希望这能回答这个问题。如果您遇到任何问题或想详细了解,请添加具体问题。
推荐阅读
- elasticsearch - 如何在弹性搜索中查询不区分大小写的字符串
- javascript - Javascript 不适用于我的模态 html?
- c# - 如何使用内存
在大型数组上(与数组不同,它没有 LongLength 属性) - loops - 为什么有一个 = 登录循环宏用于从文件中读取行?
- contextmenu - 在 React 测试库中触发右键单击事件后出现测试上下文菜单
- javascript - 默认导出类的新实例
- swift - 从最接近但小于另一个值的数组中获取值
- typescript - Typescript 编译器工作不正常?
- r - 如何在函数中使用 ifelse 进行变异
- php - 嵌套的 While 循环?