以太坊Solidity合约升级策略

Posted mutourend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太坊Solidity合约升级策略相关的知识,希望对你有一定的参考价值。

1. 引言

前序博客有:

合约升级示例代码可参看:

其中,主要由三部分组成:

  • 1)UpgradeBeacon.sol:存储了implementation合约的地址,支持controller对该implementation地址进行升级操作。
  • 2)UpgradeBeaconController.sol:设置为UpgradeBeacon合约的controller,可改变其存储的implementation地址。
  • 3)UpgradeBeaconProxy.sol:为Proxy合约,可delegate all logic, including initialization, to an implementation合约。

2. UpgradeBeacon.sol

UpgradeBeacon合约中存储了implementation合约的地址,支持controller对该implementation地址进行升级操作。

https://github.com/celo-org/optics-monorepo/blob/main/solidity/optics-core/contracts/upgrade/UpgradeBeacon.sol 的实现中,结合了:

3. UpgradeBeaconController.sol

UpgradeBeaconController.sol可设置UpgradeBeacon合约的controller,可改变其存储的implementation地址。

https://github.com/celo-org/optics-monorepo/blob/main/solidity/optics-core/contracts/upgrade/UpgradeBeaconController.sol的实现中:

4. UpgradeBeaconProxy.sol

UpgradeBeaconProxy.sol为Proxy合约,可delegate all logic, including initialization, to an implementation合约。

该implementation合约存储在一个UpgradeBeacon合约中。
通过对UpgradeBeacon合约进行升级,可改变该implementation和玉。

UpgradeBeaconProxy.sol合约的UpgradeBeacon合约在部署时即指定了,后续不可修改。

https://github.com/celo-org/optics-monorepo/blob/main/solidity/optics-core/contracts/upgrade/UpgradeBeaconProxy.sol 的实现中,结合了:

以上是关于以太坊Solidity合约升级策略的主要内容,如果未能解决你的问题,请参考以下文章

第一行代码:以太坊-使用Solidity语言开发和测试智能合约

solidity开发以太坊代币智能合约

Solidity智能合约开发 — 1-以太坊开发工具和部署

基于以太坊的智能合约开发教程Solidity 合约的销毁

在网站上运行solidity/部署以太坊智能合约

基于以太坊的智能合约solidity学习日记