¡Las transacciones mostradas pueden no ser correctas!

Cuando entro bitcoind getinfoen mi ubuntu-Server remoto obtengo esta respuesta:

{  
    "version" : 32400,
    ... (some other info)
    "errors" : "WARNING: Displayed transactions may not be correct!  You may need to upgrade, or other nodes may need to upgrade."
} 
  • ¿Qué salió mal?
  • ¿Cómo puedo arreglarlo?

Esto es lo que hice antes:

Estoy ejecutando un servidor remoto con Ubuntu 12.04 LTSun sistema operativo. La máquina está a 800 km de mi casa, estoy conectado a ella por SSH. Entonces no hay GUI, solo puedo usar comandos de shell.

Ayer instalé bitcoind llamando a este comando de shell (mientras era root) después de actualizar todos los demás paquetes ( apt-get updateseguido de apt-get dist-upgrade):

# apt-get install bitcoind

Se instalaron bitcoind y 8 o 10 paquetes más.
Luego edité /root/.bitcoin/bitcoin.confe ingresé esto:

server=1
daemon=1
rpcuser=[mi nombre de usuario]
rpcpassword=[contraseña muy larga]

Luego comencé bitcoind llamando

# bitcoind

la respuesta fue

inicio del servidor bitcoin

pero incluso después de esperar más de 5 minutos, no recuperé el shell (no pude ingresar nuevos comandos). Así que presioné

ctrl-c

Cuando entré bitcoindde nuevo, descubrí que ya se estaba ejecutando:

Bitcoin: no se puede obtener un bloqueo en el directorio de datos /root/.bitcoin. Probablemente Bitcoin ya se esté ejecutando.

También se estaba ejecutando después de cerrar y volver a abrir la conexión ssh al servidor. Así que pensé que todo estaba bien ahora. También generé una dirección de bitcoin que funcionó bien.

Ahora, unas 12 o 14 horas después, me reconecté al servidor ubuntu y entré

# bitcoind getinfo

pero la respuesta fue

error: no se pudo conectar al servidor

También mostrar todos los procesos activos al llamar topme mostró que bitcoind no se estaba ejecutando. Así que lo comencé nuevamente ingresando bitcoindla línea de comando, pero nuevamente no recuperé el shell, así que nuevamente tuve que presionar ctrl-c. Pero cuando entré bitcoind getinfodespués de eso obtuve la respuesta que publiqué al principio de esta publicación ( "errors" : "WARNING: Displayed transactions may not be correct! ...)

Asi que aqui están mis preguntas:

  1. ¿Qué salió mal?
  2. ¿Cómo puedo arreglarlo?
  3. ¿Cómo puedo iniciar bitcoind y volver a shell nuevamente?
  4. ¿Cómo puedo detener bitcoind? (Simplemente puedo matar el proceso, no sé de otra manera)

EDITAR 1:

(2014-01-08; tarde)

Acerca de detener bitcoind: descubrí que el comando es bitcoind stop. Pero cuando intenté esto ayer, recibí un error (lo siento, no puedo recordar el mensaje de error exacto. Supongo que decía "comando desconocido", pero no estoy seguro)


EDITAR 2:

(2014-01-09; mañana)

Ayer detuve bitcoind y eliminé todo en el directorio /root/.bitcoin/ excepto wallet.dat y bitcoin.conf. Luego comencé bitcoind nuevamente. Incluso después de aproximadamente 8 horas, todavía funcionaba bien. A veces se tardaba unos 20 segundos en responder a comandos como bitcoind getinfo, pero bitcoind siempre daba la respuesta esperada sin ningún mensaje de error.

Así que me fui a la cama y esta mañana volví a iniciar sesión en mi servidor y descubrí que bitcoind no se estaba ejecutando (la respuesta bitcoind getinfofue error: couldn't connect to server).

Entonces lo comencé con el comando bitcoind. La respuesta fue bitcoin server starting, pero no recuperé el shell (no puedo ingresar nuevos comandos). Así que abrí un segundo shell e ingresé bitcoind getinfoallí, y después de unos segundos, el servidor respondió con un estado-json-objeto con una cadena de error vacía (lo que significa: sin error). Así que creo que el comienzo fue exitoso. Pero el primer shell (donde comencé bitcoind) todavía está colgado, desde hace más de 30 minutos.

Respuesta corta: parece que tiene una versión muy antigua del cliente Bitcoin y necesita actualizarla. Intentaré publicar una respuesta más completa más tarde.
Elimine todos los archivos blk*.dat de su directorio de bitcoin. Deje que descargue todos los bloques desde cero y vea si las transacciones mostradas pueden no ser correctas. todavía se muestra la advertencia. En caso afirmativo, revise su disco duro en busca de pistas defectuosas, verifique que no esté lleno, que no haya ningún tipo de programa antivirus/antimalware que corrompa sus datos, etc. Buena suerte.
@NateEldredge: No, es la última versión disponible para ubuntu. Ayer escribí en mi pregunta: "Ayer instalé bitcoind..." Así que la fecha de instalación fue el 7 de enero de 2014. Y publiqué el número de versión. es 32400

Respuestas (1)

Está ejecutando bitcoind 0.3.24. Esta es una versión muy antigua que no funcionará correctamente en la red Bitcoin actual. La última versión es 0.8.6.

Parece que los mantenedores de Ubuntu no han actualizado la versión de bitcoind en el repositorio estándar 12.04; por lo que tendrá que obtener una versión actual de otro lugar. Los desarrolladores de Ubuntu mantienen un repositorio propio para bitcoin, por lo que puede instalar la última versión haciendo lo siguiente:

sudo add-apt-repository ppa:bitcoin/bitcoin 
sudo apt-get update
sudo apt-get install bitcoind

También puede obtener estas instrucciones de una fuente "oficial" yendo a http://bitcoin.org/en/download y siguiendo el enlace "Ubuntu (PPA)".

En respuesta a su otra pregunta, cuando ejecuta bitcoindsin argumentos, se ejecuta en primer plano y acepta comandos en la entrada estándar (después de un retraso de uno o dos minutos mientras se inicia). Puede salir escribiendo stop. También puede ejecutarlo en segundo plano haciendo bitcoind -daemon, y luego alimentarlo con comandos ejecutando bitcoind getinfo, etc.

"add-apt-repository ppa:bitcoin/bitcoin" no funcionó (comando desconocido add-apt-repository). Así que edité source.list e inserté esta línea: "deb ppa.launchpad.net/bitcoin/bitcoin/ubuntu precision main". Después de eso, llamé a "apt-get update" y recibí un mensaje de error que me decía que no se podía encontrar una clave pública. Así que tuve que llamar a "apt-key adv --recv-keys --keyserver keyserver.ubuntu.com [key-id from error-message]". Entonces "apt-get update" funcionó y con "apt-get dist-upgrade" pude actualizar a la versión "80600" (que creo que es 0.8.6).
@HubertSchölnast: Bien. apt-add-repositoryhace esto en un solo paso. Aparentemente no lo tienes instalado pero está en el python-software-propertiespaquete (en 12.04).
@NateEldredge En el comentario anterior a este, escribió "apt-add", pero en la respuesta escribió "add-apt". Creo que uno de los dos podría estar equivocado. ;)