升级以太坊中的智能合约

  • 本文关键字:智能 ethereum solidity
  • 更新时间 :
  • 英文 :


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

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

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

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

智能合约无法替换,但您可以创建一个智能合约代理,以便能够替换所有新智能合约函数的调用(以前的智能合约无法在主网络以太坊上删除(。

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

您可以实现遵循代理模式

博客

https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357

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

最新更新