¿Qué quiere decir esto? RPC_CLIENT_NOT_CONNECTED = -9, // Bitcoin no está conectado

Estoy creando un servicio que realiza algunas transacciones automáticas de Bitcoin y verificación de saldo. En el sistema, ahora creé algunos registros, que me dijeron que mi demonio bitcoind (que se ejecuta en el servidor Ubuntu 14.04) dio un código de error -9 al ejecutar el siguiente comando bitcoind getbalance. En la fuente de bitcoind encontré el código de error 9 descrito como:

RPC_CLIENT_NOT_CONNECTED = -9, // Bitcoin is not connected

Sobre esto tengo 3 simples preguntas:

  1. Primero: ¿qué significa esto? Estoy ejecutando el comando en la misma máquina donde se ejecuta el demonio, por lo que no se necesita conexión remota.
  2. En segundo lugar; ¿Cómo puede suceder esto? ¿Por qué un demonio bitcoind en ejecución estable se desconecta repentinamente?
  3. Y más importante; ¿Cómo puedo evitar que esto suceda?

¡Todos los consejos son bienvenidos!

Ejecutar getconnectioncountcuando se produzca este error, debería devolver cero. Un cliente puede desconectarse cuando los nodos a los que está conectado dejan de estar disponibles. Intente conectarse manualmente a uno o más nodos alternativos/de confianza.
@GeorgeKimionis - Gracias por tu respuesta. ¿Quiere decir que mi daemon de Bitcoin ya no está conectado a ningún otro nodo en la red de Bitcoin? Acabo de comprobar y ahora estoy conectado a otros 87 nodos. ¿Cómo puede ser que el conteo de conexiones haya bajado a 0? ¿Hay alguna manera de evitar que esto suceda? ¿Forzar más conexiones si cae por debajo de cierto umbral o algo así? ¡Todos los consejos son bienvenidos!
Sería útil si pudiera ejecutar getconnectioncountcuando esto suceda para que sepamos con certeza que su cliente se desconecta de la red bitcoin. Sin embargo, pasar de 87 a 0 no es algo habitual ni esperado. Le sugiero que verifique la conectividad de su servidor, ya que muchas cosas podrían salir mal en este nivel.
Por cierto, este es el código que controla cómo bitcoin acepta nuevas conexiones: github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L927

Respuestas (1)

¿Qué quiere decir esto? Estoy ejecutando el comando en la misma máquina donde se ejecuta el demonio, por lo que no se necesita conexión remota.

No se trata de la conexión entre su línea de comandos y el demonio de Bitcoin, se trata de la conexión entre su demonio de Bitcoin y otros demonios de Bitcoin.

¿Cómo puede suceder esto? ¿Por qué un demonio bitcoind en ejecución estable se desconecta repentinamente?

Es posible que esté ejecutando una versión muy antigua de Bitcoin que no es compatible con otros clientes. Su ISP podría estar filtrando el tráfico de Bitcoin. Es posible que su sistema operativo no tenga descriptores de archivos. Hay un gran número de posibles razones.

Para reducirlo, ¿ha intentado mirar el debug.log de su cliente Bitcoin? También puede intentar ver el tráfico TCP en el puerto 8333 usando Wireshark.