He estado leyendo sobre bifurcaciones de blockchain y las situaciones de cadena más larga y realmente no puedo entender qué sucederá en la situación en la que la transacción se incluyera en bloques aceptados Y rechazados. Si las transacciones en bloque rechazado regresan al mempool, ¿significa que habrá bloques con transacciones duplicadas? He dibujado algo para una mejor comprensión de esto: https://imgur.com/a/3ViIu Supongo que me estoy perdiendo algo fundamental aquí. ¡Gracias de antemano!
En primer lugar, no solo hay un único mempool, cada nodo mantiene su propio mempool en función de las transacciones y los bloques que ha visto. Dado que estos mempools generalmente coincidirán bastante bien, este hecho a veces se abrevia hablando de "el mempool" y significando el cuerpo general de transacciones no confirmadas que la mayoría de los nodos conocen. Si pudiéramos garantizar que todos tuvieran el mismo mempool, no necesitaríamos una cadena de bloques. El objetivo principal de la cadena de bloques es dar una decisión entre diferentes versiones del mempool.
En segundo lugar, desde la perspectiva de cada punta de cadena, la otra punta de cadena no es válida y se trata como si no existiera. Agregando la observación de que cada nodo tiene su propio mempool y suponiendo que la red está bien conectada, puede averiguar el estado de cada nodo con respecto a la punta de la cadena que siguen actuando como si la otra cadena no existiera.
Con respecto a su imagen:
Cuando se descubre el bloque G, todos los nodos se reorganizarán en el extremo inferior de la cadena DFG. En ese momento, volverán a B, agregarán TX14, TX15, TX3 y TX4 a su mempool, luego aplicarán el bloque D, eliminarán TX4 y TX10 del mempool, aplicarán el bloque F, eliminarán TX9 y TX15 del mempool, y luego aplicando el bloque G, eliminando TX21 y TX20 del mempool. TX3 permanece en el mempool, porque aún no está confirmado en la cadena inferior.
Mensaje Tx Regla n.º 8: https://en.bitcoin.it/wiki/Protocol_rules Rechazar si ya tenemos tx coincidentes en el grupo o en un bloque en la rama principal.
Sívich