Los que ya están acostumbrados a tener su propio nodo ya conocerán todos los trucos al respecto, pero cuando lo usas poco, o a modo exploratorio por curiosidad, una de las cosas que choca es el tiempo de descarga y validación inicial del blockchain.
Más allá de que actualmente esté sobre los 400 GB de espacio de datos a descargar, y dependiendo de las características de tu disco y memoria, el tiempo de descarga lees que es ágil para unos, y muy lento para otros. Discos SSD aceleran lo suyo el proceso, pero tienen su precio, y más aún si quieres tener un disco con capacidad de sobras en previsión.
Lo indicado a continuación no es exhaustivo, sino apuntes sobre aceleradores con los cuales me he ido topando.
Acelerador 1 – Realizar la descarga inicial en un equipo más potenteResultará más ágil realizar la descarga inicial utilizando un equipo más potente (memoria, tipos de disco, etc.), y luego mover el contenido de los datos del blockchain descargados de un sitio a otro. En mi caso, estoy utilizando como repositorio de datos un HHDD externo que moveré entre máquinas, realizando la descarga en un equipo potente, para luego conectar y utilizar el HHDD en un equipo más modesto, pero que podría destinar a correr bitcoin core de manera más regular.
Acelerador 2 – Asignarle más memoriaPor defecto, bitcoin core trabaja con una reserva de 450 MB (o así). Si tu máquina tiene memoria de sobras, puedes asignarle al parámetro dbcache bastante más cancha. Por ejemplo, con 8GB en la máquina, puedes reservarle 4GB a bitcoin core (ya más de 4GB asignados me da que no los aprovecha actualmente, aunque creo que el parámetro te permite hasta 16 GB).
Acelerador 3 – Cerrar y volver a abrir bitcoin core para refrescar los Peers de los cuales descargasCuando parte del proceso va muy lento, me ha resultado beneficioso reiniciar el bitcoin core, cambiando así los pares a los cuales se conecta, y proseguir con el proceso de descarga. No obstante, tampoco es la panacea, y frecuentemente al cabo de un rato volvía todo a las velocidades de descarga habituales.
Acelerador 4 – cambiar el directorio del "chainstate" a un SSDEste es un acelerador tremendo en mi caso, mejorando el rendimiento casi un factor de x10 en el tiempo de descarga del blockchain inicial. En mi caso, el blockchain lo tengo en un disco externo que no es SSD. A pesar de ser un disco celero e ir por usb 3, si bien no me lo parecía al principio, resulta ser un cuello de botella para la descarga. Mi disco local en cambio es SSD, por lo que he movido una carpeta en concreto (4 GB aprox.), la del chainstate, de mi disco externo a mi disco local. Como no puedes parametrizar el cambio de ubicación de una sola carpeta de los datos, puedes utilizar el comando mklink o equivalente de tu sistema operativo, acorde a lo explicado en el siguiente enlace:
Ver:
https://en.bitcoin.it/wiki/Splitting_the_data_directoryTras la descarga, se puede revertir la operación anterior.