為了防止交易重復(fù)進行,以太坊要求每筆交易必須有一個nonce數(shù)值捶障。nonce值從0開始遞增饥追,每發(fā)送一筆交易,nonce便加1雅潭。
只有當(dāng)前面nonce值較小的交易處理完成之后才會處理后面nonce值較大的交易归露。
以太坊處理nonce的規(guī)則:
- 當(dāng)nonce小于之前已經(jīng)有交易使用的nonce值奏甫,交易會被拒絕锭部;
- 當(dāng)nonce大于當(dāng)前應(yīng)該使用的nonce時捏顺,交易會一直處于隊列之中進行等待,交易依次執(zhí)行诚欠,直到補齊中間間隔的nonce值顽染,才可以執(zhí)行。
- 當(dāng)有一筆處于pending狀態(tài)的交易轰绵,新的一筆交易與其擁有相同的nonce值粉寞,如果新交易的gas price太小,無法覆蓋pending狀態(tài)的交易左腔,如果新交易的gas price高于原交易的110%唧垦,則原交易會被覆蓋掉。