Go-Ethereum

當與私人乙太坊中的較長鏈對等時,較小長度鏈上的交易會發生什麼

  • July 23, 2019

當與私人乙太坊中的較長鏈對等時,較小長度鏈上的交易會發生什麼?

下面是場景

第 1 步:我已經在 2 台不同的機器上使用相同的 genesis 文件啟動了 Ethreum 私有鏈

步驟 2:鏈都啟動,節點開始探勘和獲取交易(獨立且唯一)

第 3 步:在 node2 中停止挖礦,現在它有 1000 個區塊。挖礦在 node1 中繼續,有 10000 個區塊。

現在兩條鏈的前 1000 個區塊都是獨立的,並且每個區塊中都有不同獨特交易的詳細資訊。

如果我將 node2 與 node 1 對等會發生什麼?

請幫忙

只是為了確保:如果它們沒有相同的創世文件,則鏈無法連接。

如果您現在將節點彼此連接起來,他們必須就什麼是規範鏈達成共識。所以他們開始通過正常共識協議,基本上說最長(實際上最重,但在這裡沒有區別)鍊是規範鏈。因此,隨著node1擁有更多塊,它的區塊鏈成為規範鏈,並且node2的區塊鏈本質上被聲明為叔鏈,並且這些塊中的交易不再有效。

叔塊給採礦獎勵直到第 7 代,但不幸的是,我無法找到關於第 8 代及以後的塊會發生什麼的確切資訊。我認為他們只是像叔叔一樣呆在沒有獎勵的地方。更多資訊,例如這裡:https ://ethereum.stackexchange.com/a/58003/31933

最終出現在叔塊中的交易將被還原,並且它們在交易池中再次可用,因此某些節點最終應該將它們拾取並再次處理它們。當然,如果它們是非常舊的交易,則可能不再存在所需的先決條件(例如所需的乙太幣餘額),因此它們會被還原為規範鏈中的有效非成功交易。

如果您以相同的順序使用相同的事務直到開始的某個時間點,則節點只會丟棄(作為叔叔)從第一個區分塊開始的塊。他們不會丟棄兩條鏈中相同的塊(只要它們之前的所有塊也相同)。

引用自:https://ethereum.stackexchange.com/questions/73157