Ethereum 如何更新dapp合同

Ethereum 如何更新dapp合同,ethereum,truffle,consensys-truffle,Ethereum,Truffle,Consensys Truffle,如何更新部署在区块链中的dapp的智能合约?找到了一个很好的答案 从现场: 合同代码是不可变的,存储是可变的,但您不能 执行放入存储器的代码,至少现在是这样 合同的错误修复 至于错误修复,常见的模式是使用代理或查找 合同是通往真实的门户,一旦发生变化 否则错误修复将被替换。取代它也意味着失去旧的 存储内容 保存存储 如果您想在保留存储的同时升级代码,您可以 可以考虑将存储和逻辑分离。有专门的存储设备 合约,它接受来自受信任地址(例如 逻辑契约)。所有重要的存储都应与此关联 一个 自毁后访问存储器

如何更新部署在区块链中的dapp的智能合约?

找到了一个很好的答案

从现场:

合同代码是不可变的,存储是可变的,但您不能 执行放入存储器的代码,至少现在是这样

合同的错误修复

至于错误修复,常见的模式是使用代理或查找 合同是通往真实的门户,一旦发生变化 否则错误修复将被替换。取代它也意味着失去旧的 存储内容

保存存储

如果您想在保留存储的同时升级代码,您可以 可以考虑将存储和逻辑分离。有专门的存储设备 合约,它接受来自受信任地址(例如 逻辑契约)。所有重要的存储都应与此关联 一个

自毁后访问存储器

到今天为止,即使在 自毁,但将来肯定会发生。有 几个EIP正在讨论这个问题

即使实现了修剪,它也不应该在瞬间发生 您应该能够从上一个状态读取存储。也是 计划使用存档节点无限期地保留状态--不确定 这是可行的,没有任何限制,仅从经济增长的角度来判断 区块链

在同一地址重新部署

简言之:实际上这是不可能的。合同地址如下: 根据发送方和nonce计算。现在是连续的, 不能有任何间隙,也不能有重复

从理论上讲,用不同的哈希值得到相同的哈希值是可能的 nonce和address组合,但可能性很小