Bitcoin Core integró el PR #35531 el 15 de agosto y rediseñó la base de datos opcional -txindex, que permite a los nodos buscar transacciones mediante su ID de transacción completo. En la prueba del colaborador en mainnet, el índice reconstruido pasó de unos 66 GB a 26 GB, una reducción del 61 %. Las búsquedas se mantuvieron en unos 0,2 milisegundos y la propia reconstrucción terminó en 1 hora y 19 minutos, frente a 1 hora y 50 minutos con el formato anterior.
Por qué importa
El formato anterior almacenaba cada ID de transacción de 32 bytes como clave de la base de datos, junto con la posición de la transacción en disco. El rediseño comprime esa clave en un prefijo SipHash de 5 bytes y un sufijo de 6 bytes que codifica la secuencia del bloque y el desplazamiento de la transacción dentro de él. Bitcoin Core sigue verificando el ID de transacción completo antes de devolver una coincidencia: examina las entradas que comparten el prefijo y comprueba cada candidata frente al índice de bloques. Bitcoin Optech describió las colisiones como trabajo adicional de lectura y verificación, y señaló que la comprobación del ID completo evita las coincidencias falsas. El rendimiento se mantuvo prácticamente sin cambios.
Impacto en el mercado
Los ahorros se limitan a -txindex, un componente opcional, y no incluyen la propia cadena de bloques ni el resto del directorio de datos de un nodo. Los índices existentes siguen siendo legibles tras una actualización, pero siguen ocupando más espacio, por lo que alcanzar el ahorro de referencia de 40 GB exige recrear la base de datos. Una reversión implica un segundo coste de migración: la nota de versión incluida con el cambio señala que las versiones anteriores no pueden leer las entradas escritas en el formato compacto, por lo que volver atrás obliga a otra reconstrucción. Los binarios estables que incorporen el cambio seguirán el proceso de publicación independiente de Bitcoin Core, y la primera versión que lo incluya aún no se ha especificado. Los operadores deberían esperar a las notas de migración específicas de la versión antes de programar la reconstrucción.
Preguntas frecuentes
-
¿Qué hace exactamente el -txindex de Bitcoin Core?
Mantiene una base de datos opcional que permite a un nodo buscar transacciones por su ID de transacción completo de 32 bytes, separada de la propia cadena de bloques y solo utilizada por los operadores que activan la opción.
-
¿Qué tamaño tenía el txindex antiguo y cuánto ocupa el nuevo?
En una prueba en mainnet de un colaborador, el índice reconstruido pasó de unos 66 GB a 26 GB, una reducción del 61 %, después de que el rediseño de claves compactas del PR #35531 se integrara el 15 de agosto.
-
¿Cómo evita el nuevo formato de clave compacta las coincidencias falsas?
Bitcoin Core usa un prefijo SipHash de 5 bytes y un sufijo de 6 bytes, y después verifica el ID de transacción completo frente a las entradas candidatas antes de devolver una coincidencia, de modo que las colisiones solo añaden trabajo de lectura y no generan coincidencias falsas.
-
¿Deben los operadores reconstruir el índice para conseguir el ahorro de 40 GB?
Las bases de datos existentes de -txindex siguen siendo legibles tras la actualización, pero conservan su mayor tamaño. Conseguir el ahorro de referencia exige recrear el índice desde cero.
-
¿Qué ocurre si se vuelve a una versión anterior después de reconstruir?
Las versiones anteriores de Bitcoin Core no pueden leer las entradas escritas en el formato compacto, por lo que volver a una versión previa obliga a una segunda reconstrucción en el formato antiguo antes de que el índice vuelva a funcionar.