这篇文章详细介绍了可升级智能合约代理模式的原理和用途。通过将功能与存储分开,开发者可以在保持合约地址和存储不变的情况下,升级合约的功能。文章还比较了几种不同的代理模式,包括透明代理、UUPS代理和信标代理,分析它们的优缺点,并提出了相应的安全考虑。
本文介绍了如何使用@openzeppelin/truffle-upgrades 插件在 Truffle 迁移和测试中部署和升级合约的代理。 包括使用 deployProxy 和 upgradeProxy 函数部署和升级普通代理,以及使用 deployBeacon、deployBeaconProxy 和 upgradeBeacon 函数来部署和升级信标代理。
deployProxy
upgradeProxy
deployBeacon
deployBeaconProxy
upgradeBeacon
信标代理“信标代理”(BeaconProxy)是一种可升级合约的代理模式,主要特点是通过一个共享的“信标”(Beacon)来统一管理逻辑合约地址,适合部署多个实例共享同一个逻辑实现并且合约可升级的场景:https://learnblockchain.cn/shawn_shaw