¿El cliente Bitcoin original escala para contener millones de direcciones?

Utilizamos el cliente estándar en nuestro negocio. La billetera ya contiene alrededor de 25k direcciones. ¿Se mantendrá estable la billetera después de que el número alcance 100k o un millón de direcciones? Me dijeron que todos los negocios importantes han bifurcado al cliente. ¿Deberíamos también bifurcar y codificar nuestra propia billetera?

Respuestas (4)

He realizado pruebas antes en 0,5 millones de direcciones generadas en una tarde. Disparó walletnotify en milisegundos, sin demora notable cuando envié una cantidad a una dirección aleatoria. Lo único notable fue que el cliente tardó 30 minutos en iniciarse, lo que supongo que está bien si ejecuta un servicio más grande. Lo único que puede causarle problemas es el lento tiempo de creación de transacciones, pero alguien aquí me aconsejó que transfiriera los fondos a una nueva dirección mensualmente.

Sin embargo, ¿cómo se comportará una vez que tenga múltiples transacciones que involucren todas esas direcciones? Supongo que el consejo de mover todos los fondos a una nueva dirección mensualmente es resolver ese problema.
El tamaño de la transacción y, por lo tanto, la tarifa, serán mayores cuanto más dispersos estén sus fondos. Aunque supongo que moverlos a una dirección central debería resolverlo, ya que se crea una salida singular no gastada a partir de muchos.

El cliente normal de BitcoinQT no es adecuado para ejecutar una gran cantidad de direcciones/transacciones. La base de datos se dispara fácilmente en un mes con operaciones de IO, si lo hace, digamos, 1 transacción por minuto. Considere leer blockchain directamente, o use un servicio externo, que se encargará de los gastos generales por usted, es decir. blockchain.info

Suponiendo que usamos un servicio externo para walletnotify y blocknotify en las direcciones que guardamos en nuestra billetera. (Como agregarlos como una dirección de solo observación) ¿El cliente no seguirá extrayendo datos de transacciones relacionados con nuestras direcciones de la red? ¿Y por lo tanto hacer que el db vuelva a subir al techo?

Probé esto agregando programáticamente 1 millón de direcciones al cliente QT a través de la interfaz JSON-RPC desde un programa Java. Se desactivó el nuevo escaneo, por lo que todo lo que hizo fue agregar las direcciones y no confirmar los saldos. Tomó alrededor de 24 horas agregar 1 millón de direcciones y luego tomó otras 4 horas más o menos reiniciar el cliente y escanear 1 millón de direcciones. Estaba usando un MacBook Air, por lo que no es un hardware muy potente. Aun así, dada la cantidad de tiempo que se tardó en volver a escanear, no recomendaría usar el cliente QT con tantas direcciones en un entorno de producción. Buena suerte.

Es posible que su prueba no sea suficiente para predecir lo que sucederá en escenarios de la vida real que involucran millones de transacciones y posiblemente cientos de cuentas en la billetera.

Todo se reduce a datos históricos. ¿Recupera datos históricos consultando la cadena de bloques o confía en sus propios datos transaccionales en una base de datos local? Si hace lo último y le preocupa la estabilidad de su billetera sobrecargada, siempre puede cambiar a una billetera nueva y limpia con solo las 100 direcciones precargadas y estar seguro de que hasta el punto de 25K todo estará funcionando sin problemas.