Go-Ethereum兩個交易:相同的
兩個交易:相同的from
,不同的to
。會發生什麼?
讓我們想像一下,我有兩個完全相同的交易——唯一的區別是他們的
to
領域。第一個交易 -A
, has0x1111....
和第二個交易 -B
, has0x22222....
在該to
領域。如果我同時發送它們 - 會發生什麼?我看到兩種不同的方式:
- “世界”將分為兩部分:
A
最初收到的節點和已收到的節點B
。因此,取決於“我們的”礦工在哪裡 -A
或B
將被開採,50 / 50。- 乙太坊節點允許在未確認的情況下替換交易。因此,如果尚未探勘交易,並且節點接收到新交易 - 它會替換。
還有第二個問題。讓我們將 設置
gasPrice
為B
比 大兩倍A
。
- 我正在發送
A
- 等待例如 2 秒
- 發送
B
有沒有
B
機會贏得這場比賽?我的意思是,是否有這樣的規則:“如果有來自 tx 池中某個地址的交易,但有來自同一個地址的另一筆交易並且它更昂貴- 第一個交易應該替換為第二個交易”提前致謝!
如果我同時發送它們 - 會發生什麼?
除非新交易的 gas 價格高於某個值(預設值:10%,最小值:1%),否則節點不會替換具有相同 nonce 的交易。因此,
A
或B
將被探勘取決於礦工首先收到的交易。請注意,當節點接收到已探勘的塊時,將刪除未探勘的交易。B有機會贏得這場比賽嗎?
是的。
Account Nonce
在乙太坊中用於替換未被探勘的交易。發送具有相同nonce
和更高gas價格的交易將取代舊的交易。對於一個正常的案例來說,nonce
每次發送一個交易都應該增加1,這樣一個賬戶可以同時發送多個交易。