¿Por qué algunos comandos de Bitcoind son comparativamente lentos?

Por ejemplo, la ejecución bitcoin-cli getbalance <address>en una dirección arbitraria de solo observación demora entre 6 y 7 segundos en recibir una respuesta. ¿Hay alguna forma de mejorar el tiempo de respuesta?

¿Cómo los servicios API como Blockchain.info devuelven los detalles del saldo casi instantáneamente? Cada llamada API a Blockchain.info toma menos de medio segundo para una solicitud de saldo. ¿Hay alguna manera de hacer eso con bitcoind?

¿Estás usando bitcoind en un vps?
@RutgerVersteegden no, no estoy usando un VPS

Respuestas (2)

Por ejemplo, la ejecución bitcoin-cli getbalance <address>en una dirección arbitraria de solo observación demora entre 6 y 7 segundos en recibir una respuesta. ¿Hay alguna forma de mejorar esto?

Además del hecho de que no es así como getbalancefunciona (no llama a una dirección), getbalanceaquí es lento porque debe revisar la lista de transacciones para las direcciones en su billetera y sumar sus salidas para obtener el saldo. Si su billetera es muy grande y tiene muchas transacciones o está ejecutando bitcoind en hardware de baja potencia, esto podría llevar mucho tiempo.

¿Cómo los servicios API como Blockchain devuelven los detalles del saldo casi instantáneamente? Cada llamada API a Blockchain toma menos de medio segundo para una solicitud de saldo. ¿Hay alguna manera de que yo haga eso?

Esos servicios API tienen varios servidores grandes que alojan sus bases de datos. Sus bases de datos son masivas e indexan todo en la cadena de bloques. Almacenan información como el saldo de cada dirección (que técnicamente no está en la cadena de bloques), por lo que cuando solicita la información, se extrae de la base de datos muy rápidamente. Bitcoin Core no hace esto ya que tales bases de datos son una pérdida de espacio y la mayoría de los usuarios no se verán afectados por la funcionalidad más lenta.

¿Qué quieres decir? ¿Estoy usando getbalancemal? Estoy tratando de seguir la documentación de Bitcoin.org .
No, no lo estás usando mal. La implementación de Bitcoin Core getbalancees simplemente lenta cuando hay muchas transacciones involucradas.

Los exploradores de bloques utilizarán una base de datos "adecuada" para permitir consultas rápidas. Lo más probable es que también tengan un buen hardware detrás de ellos.

Puede configurar un explorador de bloques de código abierto usted mismo Ejemplo: https://insight.is/

Hay una opción de configuración de txindex para bitcoin que puede acelerar algunos comandos. ¿Cuáles son las ventajas y desventajas de la opción txindex?

Yo no sabía acerca de esto antes. Gracias por la info.