如何計算將交易添加到乙太坊區塊鏈的平均時間?
在下面的文章(連結)中,我們讀到:
“儘管在撰寫本文時,大約每10-20 秒產生一個新塊, 但根據ETH Gas Station的數據,將交易****添加到區塊鏈的實際平均時間為1.2 分鐘。”
我檢查了ETH 加油站;但是,我不知道如何計算1.2 分鐘的值。
- 如何計算將交易添加****到乙太坊區塊鏈的平均時間?
PS這個時間與產生一個****新塊的平均時間不同。
當您送出交易時,它開始傳播到網路的所有節點。之後,一些礦工在某個時候將其撿起並包含在他的區塊中。之後,礦工可能會成功地用您的交易探勘區塊。之後,該塊可能會或可能不會最終出現在規範鏈中。
所以可能的延遲是:
- 交易通過網路傳播。一開始只有你的節點有交易,所以它需要傳遞給其他人。這需要一些時間。
- 礦工何時將交易包含在一個區塊中?這受
gas price
tx 的影響 - 你給出的價格越高,礦工想要包含它的速度就越快(因為他們從該 tx 中獲得更多獎勵)。另一個影響因素是目前的網路擁塞:如果網路中的 tx 不多,礦工會選擇較低 gas 價格的 tx,因為沒有比這更好的了。- 將你的 tx 包含在他的區塊中的礦工何時能夠解決 PoW 難題?將您的 tx 包含在一個塊中是不夠的,但該塊還需要通過 PoW 拼圖測試。因此,礦工必須先解決 PoW 挖礦問題,然後才能形成包含您的交易的區塊。
- 當您的 tx 區塊成功開採後,該區塊將被添加到區塊鏈中(並再次傳播到所有節點 - 這也需要時間)。但是其他人可能同時解決了不同的塊,因此您的塊可能最終成為叔塊。叔塊中的交易基本上是無效的,需要將 tx 讀取到其他塊中。
要計算平均時間,您可能應該跟踪所有(或至少多個)交易,從它們創建到它們成為規範鏈的一部分。最大的影響因素是,
gas price
對所有交易做一個共同的平均可能不是很準確:有些走得慢很多,有些走得快很多。規範鏈
當一個區塊被添加到區塊鏈時,它開始“競爭”成為規範鏈的一部分。其他人可能在同一時間產生了類似的塊。然後由節點決定他們將在哪個區塊上開始探勘 - 他們應該始終選擇他們所知道的最重(幾乎與最長相同)的鏈。問題是他們可能不知道所有的(子)鏈,因此可能會開始在“錯誤的”(子)鏈上進行探勘。
在任何給定塊之上產生的塊越多,就越確定有問題的塊將留在規範鏈中。但從理論上講,這永遠不是 100% 確定的:理論上,今天有人可以從具有不同塊內容的創世塊開始探勘,並設法達到比目前鏈更重的鏈。
那麼什麼時候一個區塊肯定是規範鏈的一部分呢?直接的答案是:從不。
我不確定您可以使用哪種現成的工具來跟踪最終在規範鏈中的 tx,因為它永遠無法確定。但是,如果您執行自己的節點,例如,您可以決定在 5 個區塊之後,有問題的區塊足以確定留在規範鏈中。這就是交易所所說的“確認”數量。因此,有關規範鏈的所有計算都取決於您需要的確定性。