Was bedeutet "Operation mit der aktuellen Stapelgröße nicht gültig"?

Ich stelle diese Frage, um anderen zu helfen, die auf das gleiche Problem stoßen, auf das ich gestoßen bin. Der Fehler ist, zumindest manchmal, irreführend und möglicherweise nicht genau.

Der Kontext, in dem dieser Fehler relevant ist, ist das Signieren einer Rohtransaktion, die Sie mit Bitcoin-Software erstellt haben. Dies ist eine gängige Praxis für diejenigen, die wie ich paranoid sind. Hier ist das grundlegende Verfahren:

  1. Identifizieren Sie die TxOuts (txid- und vout-Paare), die Sie ausgeben möchten.
  2. Verwenden Sie https://chainquery.com/bitcoin-api/createrawtransaction oder etwas Ähnliches, um eine Hex-Zeichenfolge zu erstellen.
  3. Verwenden Sie https://chainquery.com/bitcoin-api/signrawtransaction zusammen mit den privaten Schlüsseln, die erforderlich sind, um diese nicht ausgegebenen TxOuts auszugeben.

In diesem dritten Schritt erhalten Sie möglicherweise den Fehler „Vorgang mit der aktuellen Stapelgröße nicht gültig“.

Antworten (3)

Der signrawtransactionRPC überprüft die Eingabeskripte der Transaktion, nachdem er sie signiert hat. Wenn die Transaktion nicht vollständig signiert wurde (dh sie ist nicht abgeschlossen), schlägt die Skriptüberprüfung fehl und erzeugt diesen Fehler.

Dies geschieht auch bei Multisig-Transaktionen. Wenn Sie nicht über genügend Signaturen verfügen, kann das Skript mit dem angezeigten Fehler nicht verifiziert werden.

Siehe auch: https://github.com/bitcoin/bitcoin/issues/9988

Ich hatte das gleiche Problem, als ich versuchte, eine Rohtransaktion mit fehlerhaftem Vout (1 statt 0) zu erstellen.

bitcoin-cli  createrawtransaction "[{\"txid\": \"cd32cc233298662131dab1c2f5fa7b0407879b51bfaa7e26afa4abf453951b09\", \"vout\": 1}]" "{\"data\":\"68656c6c6f20776f726c64\",\"mpCALgNebBXBJByCG7W5XPXe2NvuQCD8au\":1.10000000}"

Indem ich das Vout repariere, habe ich es perfekt unterschrieben

Wenn Sie einen privaten Schlüssel verwenden, der für eine andere Adresse als die TxOuts gilt, die Sie ausgeben möchten, kann dieser Fehler auftreten. Ich nehme an, es gibt andere mögliche Ursachen, aber das ist das, was mich erwischt hat.