如何更新 dapp 合约
Posted
技术标签:
【中文标题】如何更新 dapp 合约【英文标题】:How to update dapp contract 【发布时间】:2016-07-16 21:59:27 【问题描述】:如何更新部署在Ethereum 区块链中的Truffle dapp 的智能合约?
【问题讨论】:
【参考方案1】:找到了很好的答案here。
来自axic in Ethereum Stack Exchange 网站:
合约代码是不可变的,存储是可变的,但你不能 至少现在执行存放在存储中的代码。
合约错误修正
至于错误修正,常见的模式是使用代理或查找 合同成为通往真实合同的门户,以防发生变化 或错误修正将被替换。更换它也意味着失去旧的 存储内容。
保留存储空间
如果您希望能够在保留存储空间的同时升级代码,您可以 可以考虑分离存储和逻辑。有一个专用的存储 合约,它接受来自可信地址的写调用(例如 逻辑合约)。所有重要的存储都应该与此相关联 一个。
自毁后访问存储
截至今天,即使在 自毁,但这肯定会在未来出现。有 几个 EIP 讨论这个问题。
即使实施了修剪,也不应该立即发生,并且 您应该能够从最后一个状态读取存储。也是 计划让存档节点无限期地保持状态——不确定 这是可行的,没有限制,仅从增长来判断 区块链。
在同一地址重新部署
简而言之:实际上这是不可能的。合约地址为 根据发送者和随机数计算。随机数是顺序的, 不能有任何间隙,不能有重复。
理论上有可能用不同的哈希值得到相同的哈希值 随机数和地址组合,但可能性很小。
【讨论】:
以上是关于如何更新 dapp 合约的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DApp 前端中用 HTML 列出来自智能合约的一些数据
如何通过 Remix 将 Dapp 连接到 Metamask 并与部署在 Ropsten 上的智能合约进行交互