Nonce i Ethereum: varför en väntande överföring kan blockera nästa
En Ethereum transaktion nonce är ett sekvensnummer för transaktioner som skickas från ett konto. Om en tidigare transaktion från din plånbok fortfarande väntar på att inkluderas, kan en senare transaktion från samma plånbok behöva vänta bakom den. För att diagnostisera förseningen, hitta den tidigaste olösta nonce innan du skickar en annan överföring.
Vad en nonce säger dig
Nonce spårar ordningen på utgående transaktioner för ett visst Ethereum-konto. En annan avsändare har en separat sekvens. En inkommande överföring har också en egen avsändare och förbrukar ingen nonce från den mottagande plånboken. För att se hur en signerad transaktion passar in i det bredare nätverket, börja med hur Ethereum och smarta kontrakt fungerar.
Föreställ dig att nästa förväntade nonce från din adress är 17. Du skickar en överföring med nonce 17, sedan en annan med nonce 18. Om den första överföringen förblir vilande, kan Ethereum inte inkludera den andra före en giltig transaktion med nonce 17. Båda kan visas i samma block om de bearbetas i rätt ordning.
Vad du ska kontrollera innan du försöker igen
- Nätverk och avsändare. Öppna den sändande plånbokens aktivitet och verifiera nätverket och ursprungsadressen. Samma adress kan ha separata transaktionshistorik på olika nätverk.
- Transaktionshash och nonce. Slå upp hashen i en blockutforskare för det nätverket. Hitta den äldsta olösta transaktionen från samma adress.
- Status. En transaktion som väntar har ännu inte inkluderats. En inkluderad transaktion kan lyckas eller misslyckas under exekvering. En inkluderad misslyckad transaktion förbrukar fortfarande sin nonce och kan medföra en gasavgift.
- Ersättning. Om din plånbok erbjuder ett snabbare eller annulleringsalternativ, skickar den vanligtvis en ny transaktion med samma nonce. En nod kan kräva en tillräckligt högre avgift för att acceptera ersättningen, och originalet kan fortfarande inkluderas först.
En utforskare kan sluta visa den ursprungliga hashen om den tappas eller byts ut. Använd både plånbokens aktivitet och avsändarens on-chain-historik för att leta efter en bekräftad transaktion med samma nonce. För skillnaden mellan inkludering och finalitet, se blockchain-bekräftelser och finalitet.
Vad händer om överföringen var ett utbytesuttag?
Om en plattform skickade uttaget styr den det sändande kontot. Kontrollera dess uttagshistorik för transaktionshash eller kontakta dess officiella support. Om du skickade en Ethereum-insättning till OrangeX.com från din egen plånbok, jämför resultatet i kedjan med Insättningshistorik och OrangeX.com kryptoinsättningsguide. Nätverkets transaktionsstatus och börsens kreditstatus spårar separata steg.
Vanliga frågor
Kommer att lösa en väntande överföring att skicka samma belopp igen?
En ny överföring med en högre nonce kan vänta efter originalet. Om båda överföringarna senare ingår kan du skicka beloppet två gånger. Kontrollera den första hashen och den tidigaste utestående nonce innan du försöker igen.
Kan jag avbryta en transaktion efter att den har inkluderats?
En ersättare av samma slag kan bara tävla medan originalet ännu inte har inkluderats. När den väl inkluderats har den ursprungliga transaktionen använt den nonce. Granska det bekräftade resultatet innan du tar något nästa steg.