¿Bitcoind se bloquea debido a una memoria insuficiente?

EDITAR 3

Subir mi VPS a 1 GB de RAM física detuvo el problema de bloqueo... HASTA que dicho VPS se quedó sin espacio en el disco.

Agregué prune=10240a mi ~/.bitcoin/bitcoin.confarchivo de tal manera que el archivo blockchain comenzaría a eliminar el historial de transacciones al alcanzar un tamaño de archivo de 10 GB (1024 MB * 10 = 10 GB).

EDITAR 2

Esto parece ser un problema de memoria, no un problema de red VPN. Apagué OpenVPN y reinicié bitcoindsolo para ver cómo se bloqueaba silenciosamente de nuevo.

Ahora agregué un archivo de intercambio de 1 GB para expandir el espacio de memoria disponible (el riesgo es que esto cause problemas de rendimiento para el sistema operativo). Se actualizará una vez más si esto resuelve el problema. Si no, probablemente terminaré intentando actualizar la instancia de VPS a 1 GB de RAM física desde 512 MB.


EDITAR Encontré algunas cosas interesantes en el registro relacionadas con tor...

root@sf-vps:~# cat ~/.bitcoin/debug.log | grep tor -i 2016-11-13 16:52:21 Default data directory /root/.bitcoin 2016-11-13 16:52:21 Using data directory /root/.bitcoin 2016-11-13 16:52:21 Using at most 125 connections (1024 file descriptors available) 2016-11-13 16:52:29 torcontrol thread start 2016-11-13 17:08:43 Default data directory /root/.bitcoin 2016-11-13 17:08:43 Using data directory /root/.bitcoin 2016-11-13 17:08:43 Using at most 125 connections (1024 file descriptors available) 2016-11-13 17:08:50 torcontrol thread start 2016-11-13 17:08:50 tor: Error connecting to Tor control socket 2016-11-13 17:08:50 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect 2016-11-13 17:08:51 tor: Error connecting to Tor control socket 2016-11-13 17:08:51 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect 2016-11-13 17:08:52 tor: Error connecting to Tor control socket 2016-11-13 17:08:52 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect


Instalé el software Bitcoin en Ubuntu 16.04. Puedo ejecutar bitcoind -daemondurante unos minutos, pero después de un tiempo el proceso se bloquea.

Curiosamente, no veo ninguna razón para ~/.bitcoin/debug.logexplicar por qué el programa podría haber terminado.

Sospecho un par de cosas:

  1. No hay suficiente espacio en disco para almacenar toda la cadena de bloques. Sin embargo, no creo que este sea el caso, ya que la ejecución df - hmuestra un total combinado de solo ~ 41% de consumo de disco:

root@sf-vps:~# df -h Filesystem Size Used Avail Use% Mounted on udev 241M 0 241M 0% /dev tmpfs 50M 3.1M 47M 7% /run /dev/vda1 20G 6.3G 13G 34% / tmpfs 247M 0 247M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 247M 0 247M 0% /sys/fs/cgroup tmpfs 50M 0 50M 0% /run/user/0

  1. El servidor no puede recibir mensajes entrantes porque estoy ejecutando una VPN. ¿Es posible que esté experimentando un problema de red, por ejemplo, el tráfico entrante al puerto 8333 (el valor predeterminado para bitcoind) no se permite a través de mi VPN? No recuerdo cómo cambiar la configuración de VPN para permitir conexiones en puertos específicos, pero eso es lo que busco a continuación...

root@sf-vps:~# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 159.203.240.1 0.0.0.0 UG 0 0 0 eth0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.12.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 159.203.240.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 Gracias de antemano por tu ayuda :)

¿Cuánta memoria? Bitcoind necesita alrededor de 1 GB de RAM libre.
@PieterWuille Tengo 512 MB de memoria física en la instancia. Creé un archivo de intercambio con 1 GB de memoria virtual (creo que estoy usando estos términos correctamente aquí). Duró un poco más después de activar el archivo de intercambio ( swapon /swapfile), pero volvió a fallar. ¿Quizás solo necesito un VPS más robusto?
Sí, definitivamente necesitas más memoria.
Lea los archivos de registro de su sistema ( /var/log/syslog). Si el sistema se queda sin memoria y mata a bitcoind, lo verá registrado allí. También puede ser útil ejecutar bitcoind sin -daemoncomo prueba; será más fácil ver qué sucede cuando muere.
@PieterWuille ajustaría cualquiera de las siguientes opciones de configuración para reducir la huella de memoria consumida por bitcoind: disablewallet, dbcache, prune, maxorphantx, maxmempool?

Respuestas (1)

¿Estás seguro de que 9051 es el puerto correcto para Tor? 9050 es el puerto predeterminado. Puedes comprobarlo usando sudo netstat -plnt | grep ':9051'.

¿Y el servicio tor está activo?

Cuando todavía no funciona, intente deshabilitar selinux (si está ejecutando Linux). Tuve algunos problemas con tor porque selinux lo estaba bloqueando. Pero no olvides volver a ponértelo. Si es selinux, puede crear una regla para tor/bitcoin en selinux.

No tener una conexión de red no bloqueará bitcoind. Solo un problema de hardware, un error o el agotamiento de la memoria puede hacerlo.