Wie erhalte ich eine Wallet-Adresse und setze Label über RPC?

Ich bin mit den grundlegenden RPC-Befehlen vertraut, aber ich habe Probleme beim Abrufen/Hinzufügen einer Adresse zu einer Brieftasche, wenn ich reine RPC-Aufrufe verwende (dh nur Bitcoin, nicht Bitcoin-qt).

Meines Wissens sind Adressen mit Konten verknüpft, aber ich bin mir nicht sicher, welche Rolle "Konten" spielen und wie neue erstellt werden usw.

In Pseudocode möchte ich Folgendes tun können:

if (count(getAddressesByLabel("donations")) == 0) {
    address = wallet.createBitcoinAddress();
    address.setLabel("donations");
}

donationAddress = getAddressesByLabel("donations"))
Bauen Sie Ihr Buchhaltungssystem nicht auf accounts. Konten sind eher eine Legacy-Funktion, ihre Zukunft ist ungewiss, sie sind anfällig für Hardwareausfälle und daher ist es eine wirklich schlechte Idee, sie direkt für die Abrechnung von Drittgeldern zu verwenden.
@GeorgeKimionis - haben Sie eine Dokumentation für diese Änderungen und Ansichten? Sicherlich werden Etiketten mit der Brieftasche gesichert?
Etiketten werden zusammen mit ihren entsprechenden Adressen gesichert. Bitte werfen Sie einen Blick auf: github.com/bitcoin/bitcoin/issues/3816 .

Antworten (1)

Möglicherweise haben Sie dies bereits gelesen, aber stellen Sie sicher, dass Sie dies lesen, wenn Sie wissen möchten, wie die Kontofunktion des Kernclients funktioniert: https://en.bitcoin.it/wiki/Accounts_explained . (Es ist eine Art Legacy-Funktion.)

Möchten Sie dies manuell mit den RPC-Methoden oder automatisiert tun?

Führen Sie für manuell Folgendes aus:

bitcoin-cli getaddressesbyaccount "donations"

Wenn das zurückgegebene JSON-Array leer ist, ist keine Adresse zugeordnet. Um eine neue Bitcoin-Adresse mit diesem Label zu erstellen, gehen Sie wie folgt vor:

bitcoin-cli getnewaddress "donations"

Um eine Adresse für das Spendenkonto zu erhalten, gehen Sie wie folgt vor:

bitcoin-cli getaccountaddress "donations"
bitcoin-cli getaccountaddress "..."ist veraltet. Es wäre schön, wenn diese Antwort aktualisiert würde