市值: $2.1635T -0.89%
成交额(24h): $54.1021B -13.93%
恐惧与贪婪指数:

34 - 恐惧

  • 市值: $2.1635T -0.89%
  • 成交额(24h): $54.1021B -13.93%
  • 恐惧与贪婪指数:
  • 市值: $2.1635T -0.89%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

如何升级智能合约?

Smart contract upgradability enables developers to enhance functionality or fix bugs without altering the contract's address or state, using methods like proxy contracts, unstructured storage, or eternal storage patterns.

2025/07/24 02:01

了解智能合同升级性

智能合约是通过设计不变的,这意味着一旦部署在区块链上,它们的代码就无法更改。但是,升级智能合约是需要修复错误,改善功能或适应不断变化条件的开发人员的至关重要要求。智能合约的升级性不是对现有合同的直接修改,而是涉及设计模式,该模式可以在保留合同的状态和地址的同时改变逻辑。

有几种方法可以实现这一目标,包括代理合同非结构化存储代理永恒的存储模式。每种方法都有其优点和缺点。开发人员必须仔细评估哪种方法最适合其用例,然后再将升级性升级到其智能合约中。

使用代理合同以升级

升级智能合约的最常见和安全方法之一是使用代理合同。这涉及部署两个合同:持有国家和转发电话的代理合同,以及包含实际逻辑的实施合同

  • 代理合同使用代理合同指向实施合同。
  • 部署包含智能合约逻辑的初始实施合同
  • 将代理合同的实施地址设置为指向实施合同的地址。
  • 需要升级时,请部署具有更新的逻辑的新实施合同
  • 更新代理合同的实施指针指向新的实施合同地址,而无需更改代理的地址或州。

此方法可确保用户与相同的合同地址进行交互,而基础逻辑可以无缝升级。

非结构化存储代理模式

非结构化存储代理模式是代理合同方法的高级版本。它使用存储插槽来存储实现地址,从而使其与意外覆盖更加安全。

  • 在代理合同中定义特定的存储插槽以存储实施地址。
  • 在代理合同中编写一个后备功能,该合同使用DelegateCall将所有功能调用转发到实施合同。
  • 部署代理合同和初始实施合同。
  • 使用内联装配或预定义功能在指定的存储插槽中设置实现地址
  • 要升级,请部署新版本的实现合同,并在存储插槽中更新代理的实现地址。

该方法将代理的存储与实施隔离,从而降低了存储碰撞的风险并确保更安全的升级。

实施永恒的存储模式

永恒的存储模式将数据存储与逻辑分开,从而使开发人员可以升级逻辑而不会影响数据。这对于数据持久性至关重要的长期合同特别有用。

  • 创建一个存储所有数据变量的存储合同
  • 制定通过功能调用与存储合同相互作用的逻辑合同
  • 将逻辑合同链接到部署期间或通过注册表合同期间的存储合同
  • 当需要升级时,请部署新的逻辑合同并在注册表或存储合同中更新参考。
  • 确保新的逻辑合同遵循与先前版本相同的接口和数据结构,以保持兼容性。

这种模式为升级逻辑提供了灵活性,同时保持数据完整,使其非常适合复杂的分散应用程序。

升级智能合约的考虑因素

升级智能合约并非没有风险。开发人员必须在实施升级之前考虑几个关键因素:

  • 安全含义:任何升级机制都引入了潜在的攻击向量。彻底审核代理和实施合同至关重要。
  • 访问控制:升级的能力应仅限于受信任的实体。实施多签名治理或时间表可以增强安全性。
  • 兼容性:新实施必须与现有数据结构和功能签名兼容,以避免违反合同。
  • 测试:需要严格的测试以确保升级按预期工作,并且不会引入新的错误或漏洞。
  • 文档:清晰的升级过程和机制的文档对于将来的维护和透明度至关重要。

这些考虑因素有助于确保升级机制坚固,安全和可维护。

常见问题

谁能升级智能合同?不,升级智能合约的能力通常仅限于合同中定义的特定地址或角色。这些角色可能包括所有者地址,治理合同或多智钱包。

无需使用代理合同而可以升级性吗?是的,尽管代理合同是最常见的方法,但其他方法(例如永恒的存储方式或模块化合同设计)也可以根据体系结构升级。

合同升级期间用户资金会发生什么?在升级期间,用户资金仍然安全,因为代理合同维护相同的地址和状态。基础逻辑已更新,但存储和平衡仍然不受影响。

在部署前如何测试智能合同升级?您可以通过模拟升级过程来测试本地区块链或TestNet上的升级。使用Hardhat或Truffle等工具在受控环境中部署和测试代理和实施合同。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

交易前如何计算LINK期货爆仓风险?

交易前如何计算LINK期货爆仓风险?

2026-07-30 04:39:50

市场波动模式1. Bitcoin的价格走势通常与美国通胀报告和美联储利率决策等宏观经济指标相关。 2. 在 Bitcoin 主导地位较低的时期,山寨币估值经常表现出较大的波动,反映出投机行为加剧。 3. 交易所交易基金的批准立即引发流动性激增,特别是在币安和 Coinbase 等主要中心化平台上。 ...

LINKUSDT永续合约资金费率是多少?

LINKUSDT永续合约资金费率是多少?

2026-07-29 07:40:14

市场波动模式1. Bitcoin 在 ETF 批准公告或重大交易所中断等高流动性事件期间,24 小时窗口内价格波动通常超过 10%。 2. 当第 2 层汇总升级上线时,以太坊的波动性指数经常飙升,尤其是在部署后的前 72 小时内 Gas 费用减少超过 65% 的情况下。 3. 稳定币脱钩事件(例如硅...

AVAX合约强平价格为何变化?

AVAX合约强平价格为何变化?

2026-08-01 00:16:02

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

AVAXUSDT永续合约资金费率是多少?

AVAXUSDT永续合约资金费率是多少?

2026-07-31 15:00:04

定义及核心功能1. AVAX/USDT永续合约资金费率是一种定期支付机制,旨在将衍生品的交易价格与基础AVAX现货指数挂钩。 2. 与传统期货不同,它的运行没有到期日,并且依赖于实时对齐而不是基于时间的收敛。 3. 大多数主要交易所(包括 Binance、Bybit 和 OKX)每八小时计算一次汇率...

如何避免ADA期货强制平仓?

如何避免ADA期货强制平仓?

2026-08-02 01:21:48

了解 ADA 期货保证金机制1. Binance 和 Bybit 等主要交易所的 ADA 期货合约要求维持保证金水平通常设置在头寸名义价值的 0.5% 至 1.5% 之间。 2. 初始保证金要求范围为 3% 至 10%,具体取决于杠杆级别和合约期限。 3. 强平价格根据标记价格而非最新成交价格实时动...

交易前如何计算LINK期货爆仓风险?

交易前如何计算LINK期货爆仓风险?

2026-07-30 04:39:50

市场波动模式1. Bitcoin的价格走势通常与美国通胀报告和美联储利率决策等宏观经济指标相关。 2. 在 Bitcoin 主导地位较低的时期,山寨币估值经常表现出较大的波动,反映出投机行为加剧。 3. 交易所交易基金的批准立即引发流动性激增,特别是在币安和 Coinbase 等主要中心化平台上。 ...

LINKUSDT永续合约资金费率是多少?

LINKUSDT永续合约资金费率是多少?

2026-07-29 07:40:14

市场波动模式1. Bitcoin 在 ETF 批准公告或重大交易所中断等高流动性事件期间,24 小时窗口内价格波动通常超过 10%。 2. 当第 2 层汇总升级上线时,以太坊的波动性指数经常飙升,尤其是在部署后的前 72 小时内 Gas 费用减少超过 65% 的情况下。 3. 稳定币脱钩事件(例如硅...

AVAX合约强平价格为何变化?

AVAX合约强平价格为何变化?

2026-08-01 00:16:02

Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

AVAXUSDT永续合约资金费率是多少?

AVAXUSDT永续合约资金费率是多少?

2026-07-31 15:00:04

定义及核心功能1. AVAX/USDT永续合约资金费率是一种定期支付机制,旨在将衍生品的交易价格与基础AVAX现货指数挂钩。 2. 与传统期货不同,它的运行没有到期日,并且依赖于实时对齐而不是基于时间的收敛。 3. 大多数主要交易所(包括 Binance、Bybit 和 OKX)每八小时计算一次汇率...

如何避免ADA期货强制平仓?

如何避免ADA期货强制平仓?

2026-08-02 01:21:48

了解 ADA 期货保证金机制1. Binance 和 Bybit 等主要交易所的 ADA 期货合约要求维持保证金水平通常设置在头寸名义价值的 0.5% 至 1.5% 之间。 2. 初始保证金要求范围为 3% 至 10%,具体取决于杠杆级别和合约期限。 3. 强平价格根据标记价格而非最新成交价格实时动...

查看所有文章

User not found or password invalid

Your input is correct