Programando una solución para saber cuándo una dirección de Bitcoin ha almacenado una cantidad objetivo [duplicado]

Lo siento, probablemente no voy a usar los términos correctos aquí.

¿Alguien sabe cómo usar bitcoind (o una biblioteca externa) que pueda ver o incluso proporcionar mecanismos basados ​​en eventos para monitorear cuándo una dirección ha recibido una cantidad igual o superior a la deseada?

Conozco la API de websocket disponible en blockchain, pero lo ideal sería hacerlo internamente usando mis propios sistemas si es posible.

Respuestas (1)

Una solución aproximada:

Si la cuenta está en su billetera, puede usar:

bitcoind getreceivedbyaddress "DIRECCIÓN"

para obtener la cantidad de bitcoins recibidos por ADDRESS. Puedes poner esa línea dentro de un bucle infinito. Puede crear un programa de shell que almacene el resultado en una variable cada 30 segundos (usando el modo de suspensión) y compararlo con el valor anterior. Si resta los valores y encuentra una diferencia por encima de un umbral, puede hacer que el script le avise.

Puedo ser más específico si me dices tus preferencias (Python, shell de Linux...)

Sin embargo, supongo que eso no escalará tan bien para un sistema masivo.
¿Por masivo quieres decir con muchas direcciones? En ese caso, puede verificar cada bloque nuevo para sus direcciones. Puede usar getblock y bitcointools github.com/gavinandresen/bitcointools . Por cierto, el tiempo de espera de 30 segundos es excesivo. Si desea transacciones confirmadas (o transacciones que están al menos en un bloque), en promedio, los cambios tardan 10 minutos.
Bueno, idealmente quiero crear una nueva dirección, esperar hasta que tenga una cantidad determinada de bitcoins en esa dirección y luego transferir las monedas y cerrar la dirección, haciendo esto para cientos, si no miles de direcciones a la vez.
Yo optaría por un script que llame a bitcoind. O un programa personalizado en Python con bitcointools. No creo que las operaciones sean tan complicadas. Un procesador regular debería ser suficiente. En cualquier caso, parece que necesitarás un poco de trabajo.