-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
如何升级智能合约?
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),我们将及时删除。
- 比特币、eCash 分叉和空投动态:深入探讨加密货币的最新争议
- 2026-05-03 12:55:01
- 2026 年迈阿密共识:Web3、区块链、加密货币、NFT、Metaverse,会议,5 月 5 日 — 华尔街与数字前沿相遇的地方
- 2026-05-02 12:45:01
- 美联储维持利率稳定,地缘政治紧张局势引发比特币价格下跌
- 2026-05-01 06:45:01
- 比特币矿工为电网供电:收购俄亥俄州天然气厂开启数字黄金新时代
- 2026-05-01 00:45:01
- MegaETH的MEGA代币登陆纽约:为实时区块链设定新的性能基准
- 2026-05-01 00:55:01
- Solana 的滑坡:价格预测表明阻力损失和潜在的进一步下跌
- 2026-05-01 06:45:01
相关百科
什么是资金费率翻转?为什么它经常预示着市场情绪的变化
2026-06-14 03:57:05
市场波动模式1. Bitcoin 在重大宏观经济公告期间,24 小时内价格波动往往超过 10%。 2. 合并事件期间,以太坊的波动性指数飙升至 95 以上,反映出 Layer 1 和 Layer 2 生态系统的深度流动性碎片化。 3. 稳定币脱钩——例如 USDC 在 2023 年 3 月暂时偏离至...
如何识别加密货币期货市场中的市场操纵信号
2026-06-12 17:26:02
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...
什么是杠杆陷阱?为什么零售贸易商经常被抓
2026-06-12 23:53:36
市场波动模式1. Bitcoin 在 ETF 批准公告或重大交易所中断等高流动性事件期间,24 小时窗口内价格波动通常超过 5%。 2. 以太坊的波动性峰值与第 2 层采用指标密切相关,特别是当新的 Rollup 在主网上线并经历快速用户增长时。 3. 稳定币脱钩事件(例如 2023 年 3 月的 ...
什么是突破交易?期货交易者如何捕捉大幅价格变动
2026-06-13 05:19:40
了解加密货币期货的突破机制1. 当 Bitcoin 或山寨币价格果断突破既定阻力位且交易量持续激增时,就会发生突破,通常会引发杠杆多头头寸的级联清算。 2. 在永续合约市场中,突破经常与融资利率飙升和未平仓合约扩张同时发生,这表明机构参与而不是散户噪音。 3. 与现货市场不同,加密货币期货的突破会被...
高杠杆期货头寸的最佳止损策略是什么?
2026-06-14 14:19:32
高杠杆期货交易中的止损机制1. 止损设置必须符合价格扩散的统计特性,而不是任意的百分比阈值。在能源期货价差等均值回归市场中,最佳止损水平源自奥恩斯坦-乌伦贝克动力学下的首次退出时间分布。 2. 固定的 1% 或 2% 止损忽略了波动性聚集和状态转变。对取暖油/天然气-油半小时数据的实证回溯测试表明,...
如何在重大经济公告期间交易加密货币期货
2026-06-12 22:50:44
市场波动模式1. Bitcoin 在减半公告或主要交易所上市等高流动性事件期间,单个 24 小时窗口内的价格波动通常超过 5%。 2. 过去 36 个月,山寨币与 BTC 的相关性平均高于 0.78,表明对 Bitcoin 方向性走势的强烈依赖。 3. 期货未平仓合约的飙升常常先于急剧逆转——尤其是...
什么是资金费率翻转?为什么它经常预示着市场情绪的变化
2026-06-14 03:57:05
市场波动模式1. Bitcoin 在重大宏观经济公告期间,24 小时内价格波动往往超过 10%。 2. 合并事件期间,以太坊的波动性指数飙升至 95 以上,反映出 Layer 1 和 Layer 2 生态系统的深度流动性碎片化。 3. 稳定币脱钩——例如 USDC 在 2023 年 3 月暂时偏离至...
如何识别加密货币期货市场中的市场操纵信号
2026-06-12 17:26:02
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...
什么是杠杆陷阱?为什么零售贸易商经常被抓
2026-06-12 23:53:36
市场波动模式1. Bitcoin 在 ETF 批准公告或重大交易所中断等高流动性事件期间,24 小时窗口内价格波动通常超过 5%。 2. 以太坊的波动性峰值与第 2 层采用指标密切相关,特别是当新的 Rollup 在主网上线并经历快速用户增长时。 3. 稳定币脱钩事件(例如 2023 年 3 月的 ...
什么是突破交易?期货交易者如何捕捉大幅价格变动
2026-06-13 05:19:40
了解加密货币期货的突破机制1. 当 Bitcoin 或山寨币价格果断突破既定阻力位且交易量持续激增时,就会发生突破,通常会引发杠杆多头头寸的级联清算。 2. 在永续合约市场中,突破经常与融资利率飙升和未平仓合约扩张同时发生,这表明机构参与而不是散户噪音。 3. 与现货市场不同,加密货币期货的突破会被...
高杠杆期货头寸的最佳止损策略是什么?
2026-06-14 14:19:32
高杠杆期货交易中的止损机制1. 止损设置必须符合价格扩散的统计特性,而不是任意的百分比阈值。在能源期货价差等均值回归市场中,最佳止损水平源自奥恩斯坦-乌伦贝克动力学下的首次退出时间分布。 2. 固定的 1% 或 2% 止损忽略了波动性聚集和状态转变。对取暖油/天然气-油半小时数据的实证回溯测试表明,...
如何在重大经济公告期间交易加密货币期货
2026-06-12 22:50:44
市场波动模式1. Bitcoin 在减半公告或主要交易所上市等高流动性事件期间,单个 24 小时窗口内的价格波动通常超过 5%。 2. 过去 36 个月,山寨币与 BTC 的相关性平均高于 0.78,表明对 Bitcoin 方向性走势的强烈依赖。 3. 期货未平仓合约的飙升常常先于急剧逆转——尤其是...
查看所有文章














