Txpool 包含前或後智能合約執行狀態?
我正在嘗試更多地了解 txpool 以及它在乙太坊交易的整個生命週期中處於什麼狀態的交易。
如果我有一個要呼叫智能合約的交易,該交易將包含將傳遞給合約的數據。這可能會改變 SC 交易的最終狀態,例如掉期的滑點。
我試圖了解最終交換值在什麼時候固定。是交易到達交易池的時候,還是智能合約字節碼執行的時候。
這是否與 txpool 中的待處理和排隊交易有關?
基本上,當您的交易被選擇在一個區塊中被挑選時,狀態變化就會被計算出來。假設您計算區塊 X 的狀態變化,滿足您的計算的最佳方法是您的交易在 X + 1 區塊中排名第一。您可以通過調整汽油價格來實現這種操縱。
對於 ququed 和 pending 之間的區別,請查看以下答案: 待處理事務和排隊事務之間有什麼區別?
待處理事務和排隊事務有什麼區別
交易?待處理交易是準備好處理並包含在區塊中的交易。 排隊事務是事務 nonce 不按順序排列的事務。事務隨機數是具有相同發件人地址的每個事務的遞增數字。
例如:
來自賬戶 0xaaaa…aaaa 且 nonce 為 0 的交易已包含在區塊鏈中。來自賬戶 0xaaaa…aaaa 且隨機數為 1 的交易已包含在區塊鏈中。來自賬戶 0xaaaa…aaaa 的 10 筆交易,隨機數為 3、4、5、6、7、8、9、10、11、12 發送到乙太坊節點。這些被放置在交易隊列中,因為乙太坊節點沒有看到來自賬戶 0xaaaa…aaaa 且隨機數為 2 的交易。一旦來自賬戶 0xaaaa…aaaa 的 nonce 為 2 的交易被添加到交易池中,nonce 為 3、4、5、6、7、8、9、10、11 和 12 的 10 個交易將從隊列中移出到待處理的交易池,所有 11 筆交易都準備好被處理並插入到區塊鏈中(只要有足夠的氣體)。