¿Por qué no puedo conectarme a bitcoind en localhost?

La pregunta inicial que se hizo fue la siguiente, pero resultó no tener nada que ver con los conjuntos de claves:

Tenía keypool=1000 antes. Ahora comencé bitcoind (la versión daemon) con la opción keypool=10000, y ya han pasado 2 horas y bitcoind aún no se inició. Es decir, sigo recibiendo error: couldn't connect to servercuando trato de hacer bitcoind getbalance.

Es una máquina bastante rápida AMD 64bit 4000+ CPU con 10 GB de RAM, ¿cuánto puede durar el tiempo de inicio? ¿Y será tanto tiempo cada vez que inicie el daemon, o solo la primera vez?

¿Aumentarán los futuros tiempos de inicio de forma notable si mantengo keypool=10000 en comparación con 1000? ¿O alguna otra degradación del rendimiento, excepto este primer inicio?

Editar : Al final no tuvo nada que ver con keypool=10000. Por alguna razón desconocida, mi interfaz local no funcionaba. Lo arreglé con:

ifconfig lo up

Eliminé el demonio de bitcoin con kill $PID, lo inicié de nuevo y en un minuto pude hacerlo bitcoind getbalance.

No sé la respuesta. Pero supongo que el inicio más lento es solo la primera vez; después de generar 10000 claves, el inicio debería ser rápido.
Creo que Bitcoin se ralentizaría un poco cuando se valide cada bloque, ya que el programa probablemente tendrá que verificar cada transacción para ver si coincide o no con todas las claves en la billetera. Aunque no sé cuánto más lento iría...
@ThePiachu: si hay un hashset de todas las direcciones, escanear el bloque en busca de transacciones relevantes debería tomar el mismo tiempo sin importar cuántas haya. A menos que las direcciones en el propio bloque estén indexadas.

Respuestas (3)

Al final no tuvo nada que ver keypool=10000. Por alguna razón desconocida, mi interfaz local no funcionaba. Lo arreglé con:

ifconfig lo up

Eliminé el demonio de bitcoin con kill $PID, lo inicié de nuevo y en un minuto pude hacerlo bitcoind getbalance.

Mi computadora portátil "Intel(R) Core(TM)2 Duo CPU T6600 @ 2.20GHz" solo tardó 80 segundos en crear 1000 direcciones nuevas, por lo que me sorprende que esté viendo más de 2 horas por 10 veces eso.

Una cosa que noté es que la creación de direcciones se nota más rápido ahora de lo que recuerdo, por lo que quizás actualizar a una versión reciente del cliente acelere las cosas para usted.

Ejecute "tail -f ~/.bitcoin/debug.log" para ver un registro del número de clave que está creando actualmente.

De cualquier manera, el inicio solo debería ser notablemente más lento la primera vez, cuando se crea inicialmente el grupo.

Editar: (en respuesta al comentario de miernik)

La salida de debug.log terminará con líneas como las siguientes mientras llena el conjunto de claves:

keypool added key 41, size=41
keypool added key 42, size=42
keypool added key 43, size=43
keypool added key 44, size=44
keypool added key 45, size=45
keypool added key 46, size=46
keypool added key 47, size=47
keypool added key 48, size=48
keypool added key 49, size=49
keypool added key 50, size=50

Lo que estás viendo es lo que sucede mientras Bitcoin se ejecuta normalmente. Es recibir y responder mensajes en la red P2P. No sé qué sugerir sobre por qué no acepta conexiones RPC. ¿Podría ser un problema de firewall o algún otro problema de configuración no relacionado con el argumento del conjunto de claves?

He puesto las últimas 200 líneas de debug.log aquí: dpaste.com/748342/plain ¿Puede decirme cuál es el número clave? ¿Cómo se ve esa línea, para que pueda buscarla? Por cierto: ya son 18 horas y sigue funcionando.

Para otros que podrían estar encontrando un problema similar, aquí hay algunos otros problemas con los que me encontré:

1) Puertos IP que no se abren:

/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

2) Asegúrese de que la configuración de seguridad de su instancia en la nube permita conexiones TCP en los puertos apropiados.

3) Si tiene ssl habilitado en el servidor, asegúrese de haber creado un certificado ssl:

https://en.bitcoin.it/wiki/Enabling_SSL_on_original_client_daemon

4) Asegúrese de matar procesos como otros han descrito:

ps -A | grep bitcoind
kill [PID]