Hyperledger Sawtooth 未满足的依赖关系交易

Hyperledger Sawtooth Unmet Dependencies Transactions

锯齿波交易 headers 有一个 dependencies field and which is an array of transaction headers that need to be added to the ledger before this transaction is processed。 具有未满足依赖项的事务存储在哪里?它们是存储在最先收到它们的节点中,还是存储在网络中的每个节点中?

验证器将传入的交易存储在待定队列中。 Validator 消费待处理队列中的事务以供执行。事务的执行是在创建块或验证块时完成的。将交易添加到区块由共识引擎操作触发。

交易在到达时被广播到该网络的其他验证器部分。如果事务被评估,失败或成功,它将从挂起队列中删除。如果交易成功,则应该在块创建或块验证期间成功。如果因为共识过程导致创建的 Block 未能提交,这些 Transactions 将被添加回 pending 队列。 Transaction 本身没有任何问题,它只是碰巧不是提交的 Block 的一部分。换句话说,事务在成功提交到块时完全从待处理队列中删除。

当我说交易在验证器处挂起时,当然收到的是一个批次。依赖性检查由验证器在考虑将交易添加到块时完成。

希望这能回答问题。如果您遇到任何问题或想详细了解,请添加具体问题。