Etherscan

為什麼乙太坊的兩個區塊中有相同的交易(來自 Cloudflare 提供商)?

  • September 30, 2022

根據我們的應用程序日誌文件,我發現兩個區塊中出現了相同的事務。tx.hash由於我們用於PK 列,因此會導致數據庫中的主鍵錯誤。

您將0x1f755c38f032091736b4f331f7db77a04917d962078db57efc1e8156163c68bc在下面的兩個查詢的響應中看到事務。怎麼可能?

eth block:get 15365119 --network 'https://cloudflare-eth.com/v1/mainnet'
eth block:get 15365121 --network 'https://cloudflare-eth.com/v1/mainnet'

交易0x1f755c38f032091736b4f331f7db77a04917d962078db57efc1e8156163c68bc在區塊1536511915365121. 雖然它現在只在Etherscan上的 15365121 塊中。

這看起來像cloudflare-ethereum節點中的錯誤。您最好查看塊的雜湊值,而不是它的高度。然後你會注意到這種情況:

#Cloudflare Node

Block: 15365118
   hash: 0x29bc1b3921ed15e1ff5cac10e734fdd40560328fa6a4c378937cad145bbca81d
   parent: 0x44da884a8911bb9c1d5d13abc4e51599e22d9e93a18fd68be280e65223683361

Block: 15365119
   hash: 0xbe60bbd06e25905ad4ac4d673d0319b75746ae601312b730eec7d555dfcb0497
   parent: 0x29bc1b3921ed15e1ff5cac10e734fdd40560328fa6a4c378937cad145bbca81d

Block: 15365120
   hash: 0x64f54c56d61b694f56d1462d4327809e9c2aa64296100fe4c697ee3dc90d68ac
   parent: 0x64a7a42d598161339f909f5ef95e8f4c1c5f70efd4e1a3649c121b04a030d1f3

Block: 15365121
   hash: 0x8c92d1d3bf040cc24693679027ea52ec4edf8a73ee07f147353d7c25baec35f9
   parent: 0x64f54c56d61b694f56d1462d4327809e9c2aa64296100fe4c697ee3dc90d68ac


#Etherscan

Block: 15365118
   hash: 0x29bc1b3921ed15e1ff5cac10e734fdd40560328fa6a4c378937cad145bbca81d
   parent: 0x44da884a8911bb9c1d5d13abc4e51599e22d9e93a18fd68be280e65223683361

Block: 15365119
   hash: 0x64a7a42d598161339f909f5ef95e8f4c1c5f70efd4e1a3649c121b04a030d1f3
   parent: 0x29bc1b3921ed15e1ff5cac10e734fdd40560328fa6a4c378937cad145bbca81d

Block: 15365120
   hash: 0x64f54c56d61b694f56d1462d4327809e9c2aa64296100fe4c697ee3dc90d68ac
   parent: 0x64a7a42d598161339f909f5ef95e8f4c1c5f70efd4e1a3649c121b04a030d1f3

Block: 15365121
   hash: 0x8c92d1d3bf040cc24693679027ea52ec4edf8a73ee07f147353d7c25baec35f9
   parent: 0x64f54c56d61b694f56d1462d4327809e9c2aa64296100fe4c697ee3dc90d68ac

你看到塊15365118並且15365120是相同的。但是15365119在 cloudflares 節點是另一個塊,它有雜湊0xbe60bbd0...

這個區塊確實被開采了:https ://etherscan.io/uncle/0xbe60bbd06e25905ad4ac4d673d0319b75746ae601312b730eec7d555dfcb0497

但它已被替換或未包含在區塊鏈中。這樣的塊被稱為叔(ommer)塊。相關問題:什麼是 uncle/ommer 塊?

因此,出於某種原因,cloudflare-ethereum將該叔塊作為有效塊返回 height 15365119,但事實並非如此。所以你最好寫信給 Cloudflare 的支持來解釋這個錯誤。


順便說一句,您的 PRIMARY KEY 約束可能是個問題。實際上,在更換塊時這是一種常見的情況。所以你應該處理這種情況。

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