锯齿事务头有一个dependencies field和which is an array of transaction headers that need to be added to the ledger before this transaction is processed。 具有未满足的依赖关系的事务存储在哪里?它们是存储在首先收到它们的节点中还是存储在网络中的每个节点中?
答案 0 :(得分:1)
验证器将传入的事务存储在挂起的队列中。验证程序使用挂起队列中的事务来执行。创建区块或验证区块时,将执行交易。共识引擎动作触发向区块添加交易。
在交易到达时,会将交易广播到该网络的其他验证器部分。如果评估交易成功或失败,则将其从挂起队列中删除。如果交易成功,则应该在创建区块或验证区块期间进行。如果由于共识过程而未能提交创建的块,则将这些事务添加回待处理队列。事务本身没有错,它恰好不在提交的区块中。换句话说,将事务提交到块后,成功将其完全从挂起队列中删除。
当我说交易在验证器中挂起时,当然收到的是批处理。当验证程序认为将事务添加到块时,将执行依赖性检查。
希望这可以回答问题。如果您遇到任何问题或想详细了解,请添加特定的问题。