Fehler von sendSignedTransaction: Fehler: Zurückgegebener Fehler: Ersatztransaktion unterbewertet

Ich bin der Anfänger in Sachen Ethereum, brauche Anleitung, bitte helft mir, ich betreibe ein privates Ethereum-Netzwerk und benutze Mist Wallet, hier ist mein Vertragscode

pragma solidity ^0.4.0;

contract MyFirstContract {
    uint256 counter =0;

    function increase() public {
        counter++;
    }

    function  decrease() public{
        counter--;
    }

    function getCounter() public constant  returns (uint256) {
        return counter;
    }
}

Der Zählerwert änderte sich nicht, als ich auf „Ausführen“ drücke, oderincrement der Wert des Funktionszählers änderte sich nach vielen Versuchen nicht. Ich erhielt diese decrementFehlermeldung TransaktionError from sendSignedTransaction: Error: Returned error: replacement transaction underpriced

web3.eth.pendingTransactions();

[{
    blockHash: null,
    blockNumber: null,
    from: "0x4f7f384236f79a5e3322e33cc7bb2ccd5143a87c",
    gas: 188189,
    gasPrice: 18000000000,
    hash: "0x193d30297d98ad9da5958e6295d61bf333050cec901601ccdbf83e9c0b1cb082",
    input: "0x60806040526000805534801561001457600080fd5b5060ea806100236000396000f30060806040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313bdfacd81146057578063d732d95514607b578063e8927fbc14608f575b600080fd5b348015606257600080fd5b50606960a1565b60408051918252519081900360200190f35b348015608657600080fd5b50608d60a7565b005b348015609a57600080fd5b50608d60b3565b60005490565b60008054600019019055565b6000805460010190555600a165627a7a7230582094d5704152e41ee1cb7ab5b820a49845ec5652e2c9c442a8d55da756f6d5cda60029",
    nonce: 10,
    r: "0x34fa67311a0a29d31139a425c2ab120033d4ab34a6d1a860d6c806f95412f7af",
    s: "0x7d831f773e541f73a2371be911ec29b36d803db414ab4712007c4b00d4f10be9",
    to: null,
    transactionIndex: 0,
    v: "0x1b",
    value: 0
}]

also habe ich die Ankündigung web3.eth.getTransactionCount("0x4f7f384236f79a5e3322e33cc7bb2ccd5143a87c")+1 erhöht; 11

Danach versuche ich erneut, die Transaktion auszuführen, bekomme aber erneut diese NachrichtenGeben Sie hier die Bildbeschreibung ein

Antworten (1)

Nonces sind 0 indiziert, Transaktionen werden ab 1 indiziert . Dieser Beitrag hier erwähnt:

Anscheinend gibt es eine Nuance mit der Nonce ... mein Fehler war, dass ich die Nonce auf web3.eth.getTransactionCount() + 1 gesetzt habe, was eine Lücke zwischen der Nonce der vorherigen Transaktion und der Nonce der nächsten Transaktion hinterlassen hat (Nonces sind 0 indiziert, Transaktionen sind indiziert von 1, das ist die Wurzel des Fehlers). Es scheint also, dass Sie die Nonce nicht um 2 erhöhen und eine Lücke lassen dürfen. Muss sequentiell sein.

Angeforderte Anweisungen: Sie müssen den Nonce-Wert der ersten von Ihnen ausgelösten Transaktion ermitteln.

var firstNonce = web3.eth.getTransactionCount(yourSender);.

Der Beitrag, den ich oben und hier verlinkt habe, zeigt, wie man Nonce manuell setzt (und ein häufiger Fehler, der getTransactionCountbereits einen Wert zurückgibt, der um eins höher als der Nonce ist, und der Grund für meine Antwort war)

Können Sie bitte erläutern, was ich als Beispiel tun muss, da ich ein Anfänger bin, habe ich Schwierigkeiten, dies zu verstehen
@swaheed Ich habe es bearbeitet, um mehr Details aufzunehmen. Wenn Sie infura verwenden, stellen Sie außerdem sicher, dass Sie getTransactionCount nur einmal aufrufen und die zunehmende Nonce manuell verfolgen.