繁体   English   中英

升级以太坊中的智能合约

[英]Upgrading smart contract in ethereum

我正在尝试在以太坊中编写可升级的智能合约。 谁能举一个以太坊中可升级的智能合约和访问数据的例子。

要编写可升级的智能合约,我建议您执行以下操作(对我有用):

  1. 创建一个存储合约,您将在其中存储所有地图和变量。 向更改状态的函数添加修饰符。 这个修饰符应该要求一个地址必须存在于一个特定的映射中(我们称之为授权)来改变映射或变量的状态。 将所有者的地址放在该地图中。
    1. 编写一个函数来授权存储合约上的外部地址
    2. 部署另一个包含应用程序逻辑的合约。
    3. 自动提升存储合约的逻辑合约。
    4. 升级逻辑后,拒绝从逻辑合约访问存储合约,部署升级后的逻辑并将新合约链接到存储。

Tadaa 您现在拥有一组可升级的智能合约。

智能合约是不可替代的,但是你可以创建一个智能合约代理来替代所有新的智能合约函数的调用(以前的智能合约不能在主网以太坊上移除)。

完整的解释和例子可以在这里看到

智能合约可升级性是最先进的领域。 目前,有几种解决方案,但每种解决方案都有其优缺点。 以下是带有示例的解决方案: https : //consensys.github.io/smart-contract-best-practices/software_engineering/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM