Determinar el saldo de la dirección usando el núcleo de bitcoin

Tengo dificultades para descubrir cómo calcular el saldo de una dirección de bitcoin determinada utilizando solo la API RPC estándar. También me gustaría extender esta lógica a los clones de bitcoin, por lo que la solución debería usar solo llamadas API estándar (por ejemplo, solo las llamadas enumeradas aquí https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list )

¿Puedes pensar en una manera de hacer esto?

Respuestas (2)

AFAIK, esto no se puede hacer de manera razonable con Bitcoin Core y sus derivados.

La única forma que conozco de hacerlo con Bitcoin Core es usar importaddresso importmultiagregar su(s) dirección(es) a la billetera como solo para ver, pero esto requiere una nueva exploración completa de la cadena de bloques para calcular el saldo. Esto toma de varios minutos a horas dependiendo de la velocidad de su hardware.

(Tenga en cuenta que el enlace bitcoin.it que proporcionó está obsoleto y solo cubre la API hasta la versión 0.8, por lo que no encontrará estos comandos en la lista).

Necesitaría usar algún otro software que realmente indexe todas las transacciones en la cadena de bloques por sus direcciones de recepción. Esto es lo que hace un explorador de bloques, por ejemplo.

Hemos tenido muchas otras preguntas similares a esta, así que tal vez haya algunas sugerencias allí: https://bitcoin.stackexchange.com/search?q=get+address+balance

¡Usar importaddress es una buena idea! No me importa volver a escanear porque la dirección no cambiará con frecuencia. ¿Tendré problemas al tratar de gastar bitcoins si hay una dirección de solo reloj importada en mi billetera?
@Paul: No que yo sepa. La billetera sabe que las monedas en la dirección de solo reloj no le pertenecen, y las ignorará cuando intente gastar monedas.

He escrito un programa en Python3 que le permite buscar cualquier dirección en el núcleo de bitcoin, ya sea que pertenezca a su billetera o no.

Aquí está el enlace de github:

https://github.com/ORP967/Bitcoin_Core_RPC_par_address

Déjame saber lo que piensas o si tienes alguna mejora que puedas tener.