升级以太坊的智能合约

时间:2018-05-19 18:56:47

标签: ethereum solidity

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

完整的说明和示例可见Here

答案 2 :(得分:0)

答案 3 :(得分:0)

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