在HyperLeDger面料中订购器验证/创建的块中,无效的交易发生了什么



在交易流文档中

5。交易已验证并提交
交易块"交付"到通道上的所有同行。块内的交易已验证,以确保承认策略得到实现,并确保对读取设置变量的分类帐状态没有更改,因为读取集是由交易执行生成的。块中的交易被标记为有效或无效

这是否意味着一个块也保持无效的交易?

是 - 由于订购器的块已签名,因此对等方将整个块序列有效和无效的交易。它将外部元数据添加到序列化块中以标记无效的交易。当然,无效交易的状态更改不应用于状态数据库。

甚至我最初对此感到困惑,并且必须重新阅读文档以更好地理解。

我们知道 - 超级织物分类帐由两个部分组成-1。世界状态和2.交易日志。因此,发生的事情是,在订购者发送包含有策略和交易验证的有序交易的块之后,锚点对等方又将其广播到通道中的所有其他同行。

。 。

一旦同行接收块,它就会通过块中的所有交易并验证交易 - 即策略检查,并根据世界状态数据对交易详细信息进行理智检查。如果在任何帐户(策略/数据检查)上发现交易有缺陷,则对等方标志着交易无效,并且不会在世界状态上进行交易。相比之下,如果交易有效,则对等方将基于交易的读/写作集对世界状态执行操作(add/update/delete)。

一旦处理了所有交易,将块附加到事务日志(又称块链)上。这意味着,区块链中的区块将包含有效的和无效的交易和交易,将具有标记,说明它是有效的还是无效的。同伴可以通过浏览交易日志来重建世界状态 - 在这种情况下,仅考虑重建世界状态的有效交易。

在类似行上还有另一个答案-https://stackoverflow.com/a/50622463/2040522

最新更新