Blockchain-Fork
拒絕鍊和接受鏈中的交易會發生什麼?
我一直在閱讀有關區塊鏈分叉和最長鏈情況的資訊,但我無法真正理解當交易同時包含在接受和拒絕的塊中時會發生什麼情況?如果被拒絕區塊中的交易回到記憶體池,是否意味著會有重複交易的區塊?為了更好地理解這一點,我畫了一些東西: https ://imgur.com/a/3ViIu 我想我在這裡遺漏了一些基本的東西。提前致謝!
首先,不僅有一個記憶體池,每個節點都根據它看到的交易和區塊維護自己的記憶體池。由於這些記憶體池通常匹配得很好,這個事實有時被縮寫為“記憶體池”,意思是大多數節點都知道的未確認交易的一般主體。如果我們能夠保證每個人都擁有相同的記憶體池,我們就不需要區塊鏈。區塊鏈的主要目的是在不同版本的記憶體池之間做出決定。
其次,從每個鏈尖的角度來看,另一個鏈尖無效,視為不存在。添加每個節點都有自己的記憶體池的觀察並假設網路連接良好,您可以通過假設另一個鏈不存在來找出每個節點關於它們遵循的鏈尖端的狀態。
關於你的形象:
- 鏈尖為 C 的節點在記憶體池中有 TX10,同時確認了 TX3 和 TX4。
- 鏈尖為 D 的節點認為 TX4 和 TX10 被確認,並且在記憶體池中有 TX3。
當區塊 G 被發現時,所有節點將重組到下鏈尖端 DFG。那時他們將回滾到 B,將 TX14、TX15、TX3 和 TX4 添加到他們的記憶體池中,然後應用塊 D,從記憶體池中刪除 TX4 和 TX10,應用塊 F,從記憶體池中刪除 TX9 和 TX15,然後應用區塊 G,從記憶體池中移除 TX21 和 TX20。TX3 保留在記憶體池中,因為它還沒有在下鏈中得到確認。