跳到主要内容

Beacon Proxy

Summary

到目前为止讨论的大多数代理都将实现合约地址存储在代理合约存储中。 Beacon 模式由 Dharma 在 2019 年流行,它将执行合约的地址存储在单独的“信标”合约中。信标的地址使用 EIP-1967 存储模式存储在代理合约中。

对于其他类型的代理,当逻辑合约升级时,所有代理都需要更新。然而,使用 Beacon 代理,只需要更新信标合约本身。

代理上的信标地址以及信标上的实施合约地址都可以由管理员设置。在处理需要以不同方式分组的大量代理合约时,这允许多种强大的组合。

Implement

  • 逻辑合约-存储在Beacon合约的slot中。Beacon合约的地址存储在代理合约的Slot中
  • 升级逻辑-存放在Beacon合约中
  • 合约验证
  • 当有多个代理合约的时候可以通过升级新标来一次行升级所有的Proxy合约

Disadvantage

  • 多了从存储中获取逻辑合约地址的Gas费用
  • 增加了复杂性