Transactions

交易生命週期是什麼?

  • July 19, 2022

當我想從地址 A 向地址 B 發送 1ETH 時,例如使用 Metamask,幕後發生了什麼?

  1. 在我點擊送出/發送 1 ETH 時,Metamask 是否會嘗試驗證我的交易?或者一個節點試圖驗證我的交易?
  2. Metamask 是否連接到輕量級節點?我想這是自動發生的,我不需要做任何配置?
  3. 如果我的交易被驗證(來自 Metamask 或節點 - 與問題 1 相關),那麼交易應該由所有節點驗證嗎?或者我們只需要一個節點的驗證?
  4. 節點在驗證交易時具體做什麼?例如,只檢查數字簽名??
  5. 如果交易有效,則將其傳播到所有節點或僅傳播到礦工????
  6. 當區塊被挖出時,區塊會傳播到所有節點或其他礦工???

先感謝您。如果您能對前面的問題提供您的見解,那就太好了,我將不勝感激。

  1. 我認為 MetaMask 實施了一些檢查,因此您不會發送失敗的交易。MetaMask 連接的節點僅將交易轉發給礦工,因此它不進行驗證。
  2. MetaMask 使用Infura連接網路、發送交易和查詢。您可以將它與預設包含的任何網路一起使用,但如果您想添加不受支持的網路,則需要將您自己的 RPC 端點 URL 傳遞給 MetaMask。
  3. 交易需要由礦工驗證並包含在區塊中。任何節點都可以驗證它,但只有礦工所做的驗證才是真正重要的。
  4. 當交易被驗證時,它將鏈數據的舊狀態與交易將導致的狀態進行比較。所以檢查下溢和上溢等等。
  5. 交易被傳播到鏈(所有節點),但僅儲存在礦工的 tx 池中,直到它被驗證。
  6. 當包含交易的塊被探勘時,它會傳播到所有節點、探勘和其他節點。

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