最近我学到了“连锁重组”。
当“连锁重组”时,智能契约的变化是什么?
例如,
contract Contract{
event LOG_Increase();
uint sum = 0;
function Increase() public {
sum++;
emit LOG_Increase();
}
}当调用将sum从0增加的实体函数D2时,如果包含事务的块由于‘链重组’而被丢弃,sum是否变成1,然后又变成0?还是0没有变化?那么LOG_Increase事件呢?
我英语说得不好,得到了翻译的帮助。感谢您的理解。
发布于 2018-11-20 07:44:50
首先要说明的是:连锁重组是Geth中的一个术语。它意味着当一个不同的(叉子)链被接受为规范链时的事件--因此,区块链达成共识,一些已经被挖掘的块被丢弃。
因此,如果链重组,“丢失”块中的所有事务实际上都丢失了。就像交易从未发生过一样。因此,在您的示例中,sum变成了0,而event从未被触发。
但是,这并不意味着相同的事务可能不会包含在不同的块中--可能是在新规范链的一部分的块中。因此,您的事务可能已经在一个被认为“有效”的块中执行。
您可以在这里阅读更多关于链重组的内容(及其链接):https://ethereum.stackexchange.com/a/19393/31933
https://ethereum.stackexchange.com/questions/62665
复制相似问题