Recientemente aprendí sobre la 'reorganización de la cadena'.
¿Cuál es el cambio en el contrato inteligente cuando la 'reorganización de la cadena'?
Por ejemplo,
contract Contract{
event LOG_Increase();
uint sum = 0;
function Increase() public {
sum++;
emit LOG_Increase();
}
}
Cuando llame a la función de solidez Increase
que se incrementa sum
desde 0, si el bloque que contiene la transacción se descarta debido a la 'reorganización de la cadena', ¿se sum
convierte en 1 y luego en 0 nuevamente? ¿O no hay cambio en 0? ¿Y qué pasa con los eventos LOG_Increase?
No puedo hablar bien inglés y recibí ayuda de un traductor. Gracias por su comprensión.
Para que quede claro: la reorganización de la cadena es un término que se usa en Geth. Significa el evento cuando se acepta una cadena diferente (bifurcación de la) como la cadena canónica, por lo que la cadena de bloques llega a un consenso y algunos bloques ya extraídos se descartan.
Entonces, si la cadena se reorganiza, todas las transacciones en los bloques "perdidos" se pierden efectivamente. Es como si la transacción nunca hubiera ocurrido. Entonces, en su caso, se sum
vuelve 0
y event
nunca se dispara.
Sin embargo, esto no significa que la misma transacción no pueda incluirse y ejecutarse en un bloque diferente , tal vez en un bloque que sea parte de la nueva cadena canónica. Por lo tanto, es posible que su transacción ya se haya ejecutado en un bloque que se considera "válido".
Puede leer más sobre reorganizaciones de cadenas, por ejemplo, aquí (y su enlace): https://ethereum.stackexchange.com/a/19393/31933
código de error
Lauri Peltonen
código de error
Lauri Peltonen