Was ist eine Problemumgehung für Fundrawtransaction für Watchonly-Adressen?

Ich habe Watchonly-Adressen in Bitcoin importiert und versucht, RawTransaction mit der Eingabe Watchonly Listunspend zu erstellen, die spendable=false, scriptSig=empty hat.

danach erhalte ich bei fundrawtransaction eine Fehlermeldung mit der Meldung „Signing transaction failed“

Ich weiß, dass es unsigniert ist und keine Gebühr berechnen kann, aber wenn ich createrawtransaction signrawtransaction fundrawtransaction sendrawtransaction in Auftrag gebe

trotzdem erhalte ich einen Fehler "Signieren der Transaktion fehlgeschlagen"?

Ich bin verwirrt - welche Ergebnisse erwarten Sie hier? Natürlich können Sie die Transaktion nicht signieren, da Sie keine privaten Schlüssel haben.
fundrawtransactionsigniert nicht und benötigt den privaten Schlüssel nicht. Die Fehlermeldung ist verwirrend. Antwort schreibe ich später.

Antworten (1)

Eine Bitcoin-Adresse, ob Watchonly oder nicht, stellt einen öffentlichen Schlüssel dar. Dieser öffentliche Schlüssel hat einen entsprechenden privaten Schlüssel.

Wenn Sie nur eine Watch-Adresse importieren, wird der entsprechende private Schlüssel nicht importiert. Sie können also keine ungenutzten Ausgaben von diesen Adressen ausgeben.

Wenn Sie Bitcoin nur an die Adresse der Uhr senden möchten, müssen Sie sicherstellen, dass Sie den entsprechenden privaten Schlüssel kennen, sonst gehen Ihre Bitcoins verloren.

Wählen Sie eine nicht ausgegebene Ausgabe von einer anderen Adresse, von der Sie den privaten Schlüssel kennen. Nehmen Sie diese Ausgabe, wenn Sie „createrawtransaction“ ausführen. Signieren Sie die Transaktion mit diesem privaten Schlüssel und dann 'sendrawtransaction'.

Decodieren Sie optional vor dem „sendendrawtransaction“ Ihren Hex-String mit „decoderawtransaction“ und stellen Sie sicher, dass alles korrekt ist.

Dies erklärt nicht, warum fundrawtransaction nicht funktioniert (was den privaten Schlüssel nicht benötigt).
danke, ich wusste nichts über fundrawtransaction und nahm fälschlicherweise an, dass user2224893 API-Aufrufe mit der englischen Sprache verwechselt. Sorry Benutzer2224893! Ich habe den Aufruf fundrawtransaction auf meinem Knoten ausgeführt, aber einen Fehler "Methode nicht gefunden" erhalten. Ich habe einen Knoten mit deaktivierter Brieftasche ausgeführt, also habe ich en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list überprüft und konnte es auch nicht sehen. Inzwischen kann ich auf Github sehen, dass es existiert, mein Fehler.
Verwenden Sie dieses Wiki nicht, es ist um viele Jahre veraltet.
Danke, es wird sogar im Wiki erwähnt, aber ich habe es nicht gesehen, die neue Version hat fundrawtransaction abgedeckt: bitcoin.org/en/developer-reference#fundrawtransaction