¿Necesito mantener todos los bloques cuando ejecuto Bitcoin Core?

¿Necesito mantener todos los bloques, desde el bloque 0 hasta el actual, cuando ejecuto Bitcoin Core, ya sea como un nodo completo o no? ¿O puedo conservar los bloques más recientes para ahorrar espacio?

Respuestas (2)

Los nodos completos conservan todos los bloques de forma predeterminada, pero esto no es necesario para lograr la seguridad del nodo completo. Los nodos completos validan la cadena de bloques completa y hacen cumplir todas las reglas de consenso, independientemente de si se mantiene un historial completo.
Mantener todos los bloques es un servicio a la red, ya que podrá proporcionar todos los bloques para sincronizar nodos o solicitudes de clientes ligeros.

Si mantener la cadena de bloques completa es un problema, puede reducir la huella de almacenamiento ejecutando Bitcoin Core en modo de poda. Simplemente agregue prune=<n>a su bitcoin.conf, ¿dónde <n>está la cantidad de bloques más jóvenes que desea conservar en términos de almacenamiento en mebibytes? El mínimo es 550 MiB.

¿Puedo simplemente eliminar los archivos *.dat más antiguos en ~/.bitcoin manualmente, o necesito estar en modo de poda para que pueda manejar eso?
¿Seguirán apareciendo mis transacciones en bloques eliminados en la lista de transacciones de Bitcoin-Qt?
@Geremia: debe activar la poda y dejar que Core lo resuelva. De lo contrario, Core descubrirá que faltan archivos.
Sí. La base de datos de estado de cadena y el conjunto UTXO se mantienen intactos y completos. Como Core ha validado la cadena de bloques completa, conoce las transacciones anteriores y almacena los datos UTXO relevantes. También conservará toda la información relativa a sus propias direcciones.
" Conoce las transacciones antiguas y almacena los datos UTXO relevantes ". Eso está almacenado en el chainstatedirectorio (actualmente alrededor de 1,6 GB), ¿verdad? Entonces, técnicamente podría eliminar el blocksdirectorio; pero si quiero información de tracción, ¿tengo que conservarla chainstate?
No entiendo lo que estás preguntando. Si desea reducir la huella de almacenamiento, simplemente comience con el modo de poda. Aún necesitará el directorio de bloques, ya que conservará al menos 550 MiB. No lo he intentado, pero espero que Core comience a volver a descargar todos los bloques si simplemente elimina el directorio manualmente.
" No lo he intentado, pero espero que Core comience a volver a descargar todos los bloques si simplemente elimina el directorio manualmente. " Sí, eso es lo que sucedió cuando lo probé.
@Geremia: Gracias por su compromiso con la ciencia. ;)
Sí, la reproducibilidad parece faltar en estos días. ☺

Esto se llama poda.

Desde aquí :

Desde Bitcoin-Core 0.11.0, puede podar (recortar) la cadena de bloques en Bitcoin-Qt. Pero no desde la interfaz de usuario. Debe agregar -prune=550a su archivo bitcoin.conf y reiniciar Bitcoin-Qt.

Explicación: -prune=<target in MiB> le indicará a bitcoin-core que elimine los bloques que son más antiguos que el bloque más antiguo que se puede mantener con un tamaño de cadena (suma de tamaños de bloque) de <target>(mín. 550MiB como muestra el ejemplo anterior). Un mínimo de 550MiB garantiza mantener al menos 288 bloques (~2 días). (explicación simple sin incluir datos de deshacer)

Restricción: -prune deshabilita todas las funciones de la billetera en la versión 0.11 (funcionará con una billetera en la versión 0.12).

Obviamente, como un nodo completo, no puede servir bloques históricos que no tiene, por lo que es más como un leecher P2P.