Contribuir a Bitcoin Core puede parecer complicado al principio. El PR Review Club en Español lo hacemos más accesible a la comunidad hispanohablante.
En cada sesión elegimos una Pull Request abierta, la dividimos en preguntas guiadas y la revisamos juntos: analizamos el código, resolvemos dudas y aprendemos cómo piensan quienes mantienen y contribuyen a Bitcoin Core.
Esta web es un archivo público de todas las sesiones pasadas, para que puedas consultarlas cuando quieras.
Si quieres participar en vivo, únete a nuestro Discord, hay una sesión al final de cada mes.
Antes de #35531, ¿qué guardaba cada entrada del txindex como clave y como valor? ¿Y después? ¿Por qué ese cambio es lo que permite tener un txindex en un nodo podado?
Con esta PR el nodo poda los bloques pero el índice no se poda: sigue creciendo (~2,5 GB/año) y apunta a datos que ya no están en disco. ¿Qué aporta un índice así? ¿Para qué usuarios tiene sentido, frente a no tener txindex o tener un nodo completo?
¿Por qué -txindex y -prune eran incompatibles? En txindex: allow prune mode when there are no legacy entries, ¿por qué la comprobación pasa de AppInitParameterInteraction a AppInitMain, y por qué se rechaza la poda si quedan entradas legacy?
En el mismo commit hay dos mensajes de error según m_have_pruned. ¿Por qué no basta con “borra el directorio” en los dos casos?
En txindex: return pruned block hashes from FindTx, ¿por qué FindTx solo devuelve el hash de un bloque podado si ese bloque está en la cadena activa? ¿Y por qué devuelve un vector de hashes y no uno solo?
En rpc: report pruned blocks from GetTransaction, getrawtransaction con verbosity 2 pasa de comprobar BLOCK_HAVE_MASK a BLOCK_HAVE_UNDO. ¿Qué escenario nuevo lo hace necesario?
Si la tx está en un bloque podado, ¿qué recibe el usuario (código, mensaje, error.data) frente a una tx que no existe? ¿Qué hace después, y por qué el bloque descargado no se vuelve a borrar enseguida?
Mientras el txindex se sincroniza en un nodo con -prune, ¿qué impide que el nodo pode bloques que el índice aún no ha procesado? ¿Qué pasaría si eso ocurriera?
Leed la discusión de la PR: las propuestas de ajtowns (-prunetxindex) y mzumsande (índice parcial que borre entradas viejas), y la petición de fjahr de sacar el historial parcial a otra PR. ¿Os resultaría útil un txindex que solo cubre parte de la cadena? ¿En qué casos lo usaríais y qué os falta del diseño actual?
Si el historial parcial se generalizara a BaseIndex, ¿qué otros índices podrían empezar a mitad de la cadena y cuáles no? Pensad en blockfilterindex, coinstatsindex y txospenderindex.