Wie kann ich einen privaten Schlüssel in einen beschnittenen Knoten importieren?

Ich versuche, meine Bitcoin Core-Brieftasche wiederherzustellen, aber ich habe nur den privaten Schlüssel und die Passphrase, ich habe keine Datei wallet.dat.

Ich habe versucht, mit

importprivkey privatekey xxxxxxxxxxxxxxxxxxxx

was mir den Fehler gab Rescan is disabled when blocks are pruned (code -4).

Wie kann ich den Schlüssel importieren?

Antworten (3)

Im Allgemeinen speichert die mit Bitcoin Core gelieferte Brieftasche nur Kopien von Transaktionen, die direkt die Brieftasche betreffen. Wenn Sie einen Schlüssel importieren, scannt Ihr Knoten die gesamte Blockchain, um zu sehen, ob Transaktionen diesen Schlüssel betreffen.

Ein beschnittener Knoten hat die gesamte Blockchain verarbeitet, behält aber nur das hintere Ende der Daten. Das bedeutet, dass beim Importieren eines privaten Schlüssels in einen beschnittenen Knoten der beschnittene Knoten nicht über die Daten verfügt, um nach relevanten Transaktionen zu suchen. Deshalb ist es mit der rescanAnforderung nicht vereinbar. Um die mit dem Schlüssel verbundenen Transaktionen zu finden, müssen Sie die anfängliche Synchronisierung der Blockchain wiederholen.

Wie Prayank bereits in seiner Antwort sagte, könnten Sie verwenden

importprivkey "<key>" "" false

um einen oder mehrere private Schlüssel zu importieren. Das „false“ im dritten Argument überspringt den üblichen Rescan, der durch den Import ausgelöst wird. Dies sollte den angezeigten Fehler vermeiden.

Nachdem Sie alle relevanten Schlüssel importiert haben, starten Sie Ihren Knoten mit der -reindexBefehlszeilenoption neu, um mit der anfänglichen Synchronisierung neu zu beginnen. Ihre Brieftasche scannt während der Synchronisierung nach relevanten Transaktionen und entdeckt die Geldmittel und den Transaktionsverlauf der Brieftasche neu.

Wenn Sie vermeiden möchten, eine weitere Synchronisierung mit Ihrem Knoten durchzuführen, können Sie den Schlüssel stattdessen in einen Light-Client wie Electrum importieren, wie von RedGrittyBrick in einer anderen Antwort vorgeschlagen.

Sollte "getbalance" funktionieren, bevor die vollständige Neuindizierung abgeschlossen ist? Wenn mein importierter privater Schlüssel beispielsweise Bitcoin im Jahr 2010 erhalten hat und Bitcoin Core die Neuindizierung bis 2011 abgeschlossen hat, sollte gebalance dann den Kontostand ab 2011 anzeigen? Das scheint vernünftig, aber es ist nicht das Verhalten, das ich sehe, und ich möchte eine lange Neuindizierung vermeiden, um herauszufinden, dass der Import nicht wie erwartet funktioniert hat.
Hallo Rich, ich habe hier nach dir gefragt: bitcoin.stackexchange.com/q/108258/5406
@RichRemer Ah, mir ist klar, dass Sie ein erfahrener Benutzer von einer anderen Site sind. Du stellst eine gute Frage, erstelle bitte ein neues Thema. Sie können den Text Ihres Kommentars wörtlich für die Frage verwenden. - Ich habe die von mir erstellte Frage gelöscht, in der Annahme, dass Sie eine posten werden.

Ich denke, Ihre Entscheidungen sind

  • Starten Sie Ihren Bitcore-Core-Knoten mit ausreichend Speicherplatz und deaktiviertem Pruning-Modus neu , warten Sie, bis er erneut synchronisiert wurde, und verwenden Sie dann importprivkeyor
  • Importieren oder fegen Sie Ihren privaten Schlüssel in eine andere Brieftasche wie Electrum. Überweisen Sie optional das Geld zurück auf Ihre Bitcoin-Core-Wallet. Dies könnte schneller sein, aber Sie erhalten nicht den vollständigen Transaktionsverlauf zurück in Bitcoin-Core
Danke für die Antwort, ich habe neu gestartet, bin mir aber nicht sicher, wie ich das Pruning deaktivieren kann.
Überprüfen Sie die Konfigurationsdatei

Sie können das folgende Format für importprivkey verwenden :

importprivkey "mykey" "" false