Bitcoin Core txindex vs modo predeterminado vs modo podado en profundidad

Puedes ejecutar bitcoin en:

  • Modo txindex: que le permite consultar cualquier transacción en la cadena de bloques con getrawtransactions (¿algún otro beneficio?). Esto ocupa la mayor parte del espacio.

  • modo predeterminado: esto le permite obtener transacciones sin procesar solo para su propia transacción

  • Modo podado: como el modo predeterminado, pero solo conserva unos pocos GB de las últimas transacciones. Descarga los bloques, verifica y luego los desecha.

Pero me gustaría saber con más profundidad las diferencias entre los modos.

¿Qué parte de la cadena de bloques de Bitcoin almacena cada modo en la máquina local? ¿Qué descarga y verifica? ¿Qué descarta? ¿Qué habilidades pierdes con los diferentes modos?

Breve comentario: getrawtransaction solo funciona para transacciones no confirmadas (o todas, si tiene txindex). Para consultar sus propias transacciones, debe usar gettransaction(que siempre funciona y brinda más información).

Respuestas (1)

Índice Tx

La mayoría de los casos de uso no requieren un índice tx. La billetera realiza un seguimiento de las transacciones relevantes (si ejecuta una billetera). Un tx-index completo puede ser útil para interfaces tipo explorador de bloques o para investigación, etc. Requiere algo de espacio en disco.

Poda y TxIndex : no puede usar un txindex con una cadena de bloques podada. La poda desechará los bloques escaneados. Tener un índice que apunte a un tx en un bloque que ya no está en su disco parece un desperdicio.


Poda

Autopprune (-prune=550) le permite reducir sus datos históricos de blockchain a un objetivo determinado (en MB, el ejemplo usa 550, que es el mínimo). No puede desechar todos los bloques porque es posible que deba "retroceder un par de bloques" si hay una reorganización de la cadena.

Si configura prune=1(== modo manual), puede podar manualmente su cadena de bloques (use la llamada RPC pruneblockchain <height>) [desde 0.14]

La única razón para mantener los bloques antiguos (digamos más profundos que 144 bloques) es permitir que otros pares arranquen la cadena de bloques y sirvan bloques (filtrados) al cliente SPV. Hay pocos casos de uso de "usuario final" (espere el txindex) para mantener el bloque antiguo.

Conjunto UTXO

Es importante saber que su nodo completo realizará un seguimiento de todas las transacciones no gastadas (solo aquellas son relevantes para validar bloques/la cadena). Esta base de datos tiene (en este momento) aproximadamente 2 GB de tamaño y estará (y debe) también estar presente en el modo de poda. Esta base de datos es esencial para un nodo completo.


Modo por defecto

Conserva todos los bloques (ocupa ~80 GB de espacio en disco). Esto permitirá que otros pares verifiquen la cadena de bloques y permite que los pares SPV soliciten transacciones relevantes en todos los bloques posibles. Si nadie se ejecuta en este modo, el historial de la cadena de bloques puede perderse (exagerarse).

Para su información, hoy en día, la cadena de bloques ocupa cerca de ~ 250 GB de espacio en disco. Cada vez es más difícil ejecutar un nodo completo...λ MEC-MBP scripts → λ git master* → du -sh ~/Library/Application\ Support/Bitcoin/{blocks,chainstate} 228G /Users/mec/Library/Application Support/Bitcoin/blocks 2.7G /Users/mec/Library/Application Support/Bitcoin/chainstate