“(Hyperledger Sawtooth)交易一次存在于多个区块中”怎么可能?

How is it possible for a '(Hyperledger Sawtooth) transaction to exist in multiple blocks at a time'?

以下语句来自documentation.

Transaction receipts will only be stored in this off-chain store and will not be included in the block. Note that because a transaction may exist in multiple blocks at a time, the transaction receipt is stored by both transaction id and block state root hash.

问题:

交易是唯一的(在一批中),并且在达成共识后应该只包含在一个区块中。这个过程可能会发生,每笔交易只能发生一次。如果,这样的话,怎么可能交易到'exist in multiple blocks at a time'

一笔交易通常只存在于一个区块中,在所有 Sawtooth 验证节点上都有同一个区块的副本。

然而,如果区块链"forks",那么区块链状态可能有两个相互冲突的版本,并且交易可能仅出现在一个或另一个区块链中,或者以不同的顺序和不同的块出现在两者中。

分叉的发生可能有多种原因。一个常见的原因是因为节点长时间失去通信,所以网络被分区,因此节点也被分区。当通信恢复时,区块链自行解决,其中一个区块链被选为 "correct" 区块链,所有节点同步到 "correct"(或选择的)区块链。