¿Cómo obtener una dirección de billetera y establecer una etiqueta a través de RPC?

Estoy familiarizado con los comandos básicos de RPC, pero tengo problemas para recuperar/agregar una dirección a una billetera usando llamadas puramente RPC (es decir, solo bitcoind, no bitcoin-qt).

Tengo entendido que las direcciones están asociadas con las cuentas, pero no estoy seguro de qué papel juegan las "cuentas", y cómo crear otras nuevas, etc.

En pseudocódigo, esto es lo que quiero poder hacer:

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

donationAddress = getAddressesByLabel("donations"))
No construya su sistema contable sobre accounts. Las cuentas son más una función heredada, su futuro es incierto, son vulnerables a fallas de hardware y, como tal, usarlas directamente para contabilizar fondos de terceros es una muy mala idea.
@GeorgeKimionis: ¿tiene alguna documentación para esos cambios y vistas? ¿Seguramente las etiquetas están respaldadas con la billetera?
Las etiquetas se respaldan junto con sus direcciones correspondientes. Eche un vistazo a: github.com/bitcoin/bitcoin/issues/3816 .

Respuestas (1)

Es posible que ya hayas leído esto, pero asegúrate de leerlo si quieres saber cómo funciona la función de cuentas del cliente principal: https://en.bitcoin.it/wiki/Accounts_explained . (Es algo así como una característica heredada).

¿Está buscando poder hacer esto manualmente con los métodos RPC o automatizado?

Para manualmente, haz:

bitcoin-cli getaddressesbyaccount "donations"

Si la matriz JSON devuelta está vacía, no se asocia ninguna dirección. Para crear una nueva dirección de bitcoin con esa etiqueta, haz lo siguiente:

bitcoin-cli getnewaddress "donations"

Para obtener una dirección para la cuenta de "donaciones", haga lo siguiente:

bitcoin-cli getaccountaddress "donations"
bitcoin-cli getaccountaddress "..."ha quedado en desuso. Sería bueno si esta respuesta se actualizara