发布于 2016-03-29 11:36:40
很好的答案找到了这里。
来自轴心的Ethereum堆栈交换站点:
契约代码是不可变的,存储是可变的,但是您不能执行放置在存储中的代码,至少现在是这样。 修正合同 至于错误修复,常见的模式是让代理或查找契约成为通往真正的协议的网关,在发生更改或错误修复时,代理或查找契约将被替换。更换它还意味着丢失旧的存储内容。 保持存储 如果您希望能够在保持存储的同时升级代码,则可以考虑将存储和逻辑分离。有一个专用的存储契约,它接受来自受信任地址(例如逻辑契约)的写调用。所有重要的存储都应该与这个存储相关联。 在自毁后访问存储 到今天为止,即使在自毁的情况下也没有真正的修剪,但这肯定会在将来发生。有几个EIP在讨论这个问题。 即使实现了剪枝,它也不应该在瞬间发生,而且您应该能够从最后一个状态读取存储。它还计划让存档节点无限期地保持状态--仅仅通过判断区块链的增长,就不能确定这种状态是否可行而不受限制。 在同一地址重新部署 简单地说,这实际上是不可能的。合同地址是从发送方和当前方计算的。现在是连续的,不可能有任何缺口,也不会有重复。 从理论上讲,可以使用不同的“现在”和“地址”组合来达到相同的散列,但相似之处很小。
https://stackoverflow.com/questions/36282737
复制相似问题