-
bitcoin $78074.098354 USD
1.89% -
ethereum $2299.014391 USD
2.17% -
tether $0.998449 USD
0.01% -
bnb $700.460149 USD
1.26% -
xrp $1.273048 USD
1.81% -
usd-coin $0.999762 USD
0.01% -
solana $92.929882 USD
1.25% -
tron $0.321666 USD
0.30% -
zcash $1272.523101 USD
12.65% -
hyperliquid $84.856242 USD
1.58% -
monero $637.212844 USD
3.50% -
dogecoin $0.074680 USD
1.23% -
unus-sed-leo $9.292529 USD
-0.02% -
chainlink $11.063098 USD
-0.05% -
cardano $0.190385 USD
1.97%
如何升级智能合约?
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),我们将及时删除。
- DarkSword攻击工具利用iOS漏洞,对加密货币钱包安全构成重大威胁
- 2026-11-05 04:45:02
- 法国银行加密货币损失:ZachXBT 揭露 Crédit Mutuel Arkéa 涉嫌被盗 1.33 亿美元
- 2026-11-04 16:55:01
- 民主党确保美国众议院控制权,中期选举开启国会新时代
- 2026-11-04 16:45:01
- 美国中期选举、预测市场和加密货币竞赛:对华盛顿未来的高风险赌注
- 2026-11-04 04:30:22
- 数字资产、全球金融和人工智能:在 DavosWeb3 及其他领域探索下一个前沿
- 2026-11-04 04:30:22
- 在更广泛的市场困境中,AVAX 价格下跌;机构兴趣依然浓厚
- 2026-11-03 12:35:02
相关百科
如何计算持有 BTCUSDT 期货头寸的总成本
2026-10-26 04:06:35
BTCUSDT 期货头寸的总成本构成1. 持有BTCUSDT期货头寸的总成本包括显性费用和隐性费用。显性成本包括开仓和平仓交易费用,而隐性成本主要来自一段时间内的资金费率支付或收入。 2. 开仓费用按照入场时的名义价值与交易所的吃单/挂单费用表的乘积计算——对于主要平台上的吃单来说,开仓费用通常在 ...
如何同时监控 XRPUSDT 资金费率和未平仓合约
2026-10-20 18:39:42
XRPUSDT 永续合约的资金费率机制1. XRPUSDT永续合约的资金费率每八小时计算一次,使用XRP和USDT计价借贷市场之间的溢价指数和利差。 2. Binance、Bybit 和 OKX 等交易所在其衍生品 API 端点中发布实时资金费率数据,从而实现仪表板或警报系统的自动摄取。 3. 正的...
如何设置 SOLUSDT 永续合约盈亏平衡止损
2026-10-23 09:34:18
了解盈亏平衡止损机制1. 盈亏平衡止损是一种动态订单,随着头寸盈利变动而向上调整,执行时锁定零净损失。 2. 它仅在交易达到预定利润阈值后才起作用——通常是初始风险或入场费的 1 至 2 倍。 3. 在币安 SOLUSDT 永续合约上,此逻辑必须手动触发或编写脚本,因为本机交易所 UI 不会自动将止...
如何使用币安期货计算器进行 ETHUSDT 交易
2026-10-21 02:00:11
了解币安期货计算器界面1. 该计算器直接嵌入币安合约交易界面中,可通过订单输入面板下的 ETHUSDT 永续合约页面访问。 2. 随着用户调整输入字段(包括仓位大小、入场价格、杠杆水平以及止盈或止损水平),它会动态更新。 3. 接受多种格式的输入值:合约数量(ETH)、名义价值(USDT)或保证金金...
合约强平前如何查看BTCUSDT标记价格
2026-10-26 12:20:18
了解BTCUSDT期货的标记价格1. 标记价格是交易所为防止市场波动期间出现不公平清算而使用的计算值。 2.反映了来自多个来源的公平、稳定的参考价格,包括指数价格和资金费率。 3. 与最新成交价不同,标记价格包含来自顶级现货交易所的时间加权平均值,以降低操纵风险。 4. 在币安上,BTCUSDT标记...
如何调整 TRUMPUSDT 永续合约的杠杆
2026-10-30 22:19:37
了解 TRUMPUSDT 永续合约机制1. TRUMPUSDT 是在多个一级衍生品交易所上市的主题永续期货合约,旨在跟踪围绕美国政治叙事而非基础资产基本面的价格情绪。 2、根据平台不同,采用标准的反向或线性结算逻辑,以USDT作为报价和保证金资产。 3. 合约使用的标记价格源自现货 BTC/USDT...
如何计算持有 BTCUSDT 期货头寸的总成本
2026-10-26 04:06:35
BTCUSDT 期货头寸的总成本构成1. 持有BTCUSDT期货头寸的总成本包括显性费用和隐性费用。显性成本包括开仓和平仓交易费用,而隐性成本主要来自一段时间内的资金费率支付或收入。 2. 开仓费用按照入场时的名义价值与交易所的吃单/挂单费用表的乘积计算——对于主要平台上的吃单来说,开仓费用通常在 ...
如何同时监控 XRPUSDT 资金费率和未平仓合约
2026-10-20 18:39:42
XRPUSDT 永续合约的资金费率机制1. XRPUSDT永续合约的资金费率每八小时计算一次,使用XRP和USDT计价借贷市场之间的溢价指数和利差。 2. Binance、Bybit 和 OKX 等交易所在其衍生品 API 端点中发布实时资金费率数据,从而实现仪表板或警报系统的自动摄取。 3. 正的...
如何设置 SOLUSDT 永续合约盈亏平衡止损
2026-10-23 09:34:18
了解盈亏平衡止损机制1. 盈亏平衡止损是一种动态订单,随着头寸盈利变动而向上调整,执行时锁定零净损失。 2. 它仅在交易达到预定利润阈值后才起作用——通常是初始风险或入场费的 1 至 2 倍。 3. 在币安 SOLUSDT 永续合约上,此逻辑必须手动触发或编写脚本,因为本机交易所 UI 不会自动将止...
如何使用币安期货计算器进行 ETHUSDT 交易
2026-10-21 02:00:11
了解币安期货计算器界面1. 该计算器直接嵌入币安合约交易界面中,可通过订单输入面板下的 ETHUSDT 永续合约页面访问。 2. 随着用户调整输入字段(包括仓位大小、入场价格、杠杆水平以及止盈或止损水平),它会动态更新。 3. 接受多种格式的输入值:合约数量(ETH)、名义价值(USDT)或保证金金...
合约强平前如何查看BTCUSDT标记价格
2026-10-26 12:20:18
了解BTCUSDT期货的标记价格1. 标记价格是交易所为防止市场波动期间出现不公平清算而使用的计算值。 2.反映了来自多个来源的公平、稳定的参考价格,包括指数价格和资金费率。 3. 与最新成交价不同,标记价格包含来自顶级现货交易所的时间加权平均值,以降低操纵风险。 4. 在币安上,BTCUSDT标记...
如何调整 TRUMPUSDT 永续合约的杠杆
2026-10-30 22:19:37
了解 TRUMPUSDT 永续合约机制1. TRUMPUSDT 是在多个一级衍生品交易所上市的主题永续期货合约,旨在跟踪围绕美国政治叙事而非基础资产基本面的价格情绪。 2、根据平台不同,采用标准的反向或线性结算逻辑,以USDT作为报价和保证金资产。 3. 合约使用的标记价格源自现货 BTC/USDT...
查看所有文章














