¿Monitorea constantemente la billetera bitcoin usando Python/Django?

Estoy construyendo un sitio con python/django, ejecutando bitcoind en segundo plano. Necesito verificar constantemente todas las direcciones en la billetera para hacer una declaración de inserción de sql en mi base de datos cada vez que se recibe una transacción entrante, y tal vez enviar algunos fondos en ciertos casos.

Mi sitio funciona bien, y escribí una secuencia de comandos de Python que se ejecuta por separado y utiliza un ciclo while true simple para lograrlo. El problema es que, cuando se ejecuta el script, ocupa demasiada memoria y el sitio se agota cuando lo recargo. ¿Cómo evitar esto? Realmente necesito un proceso en segundo plano ejecutándose en todo momento. Estoy tratando de usar subprocesos en el script, pero todavía parece acaparar demasiada memoria.

Pensé en ejecutar bitcoind con la misma billetera y el script en una computadora separada, pero escuché que es una mala idea.

Gracias.

He escrito un marco de Python para tratar problemas como este en criptomonedas: bitbucket.org/miohtama/cryptoassets - viene incluso con aplicaciones de ejemplo de código abierto para Django

Respuestas (1)

Use la notificación de billetera . Puede configurarlo en su bitcoin.confarchivo y hacer que llame a algún script de python o django.

Otra solución sería buscar constantemente nuevas transacciones, aunque no lo recomendaría.

Gracias, esto ayudó inmensamente. ¡Exactamente lo que necesitaba! Desafortunadamente, cuando llamo a walletnotify= python /path/to/script %s, pasa 'sh: 1: <txid> no pudo encontrar 32512' en sys.argv[1]. Sin embargo, si lo paso a un programa C++, solo pasa el txid. Tan extraña.
extraño, aunque no debería ser sys.argv[2]?
Dijo que estaba fuera de índice. Además, funciona bien en C++. No sé, lo jugaré más y trataré de hacerlo funcionar. No tengo comillas en mi comando -walletnotify.