¿Por qué bitcoind dice "error: no se pudo conectar al servidor" durante los primeros minutos de arranque?

Después de iniciar bitcoin desde la línea de comando, con:

./bitcoind -daemon

Inmediatamente ejecuto el comando de seguimiento:

./bitcoind getinfo

lo que me da el siguiente error:

error: couldn't connect to server

Este error dura de unos segundos a unos minutos dependiendo de la máquina.

Dos preguntas:

  1. ¿Qué está haciendo Bitcoin durante este tiempo que causa este error (es decir, evita que el cliente devuelva los resultados de getinfo)?
  2. ¿Hay algún paso que pueda tomar que minimice este tiempo de puesta en marcha?

Respuestas (1)

Lo primero que hace Bitcoin-QT es verificar que los datos almacenados en el disco sean válidos. Entre otras comprobaciones, esto incluye la verificación de los últimos 288 bloques (los dos últimos días previstos). Esta tarea implica una gran cantidad de comprobaciones de firmas y tardará algún tiempo en completarse. Solo después de que las comprobaciones de inicio se hayan completado con éxito, se establecerán las conexiones a la red Bitcoin y solo entonces el cliente comenzará a escuchar las solicitudes JSON-RPC entrantes.

otro gotcha: estaba ejecutando la red de prueba. no pude hacer que bitcoin-cli funcionara hasta que agregué -testnet (es decir, bitcoin-cli -testnet getinfo)
@PeterMunnings: Buena, gracias. Tuve el mismo problema, aunque estoy un 90% seguro de que antes funcionaba sin él.
Si agrega testnet=1a su principal bitcoin.conf, bitcoin-clifuncionará con testnet sin tener que especificarlo en la línea de comando. Agregue -testnet=0en la línea de comando para omitir eso para mainnet.