-
bitcoin $77709.100515 USD
1.62% -
ethereum $2492.425806 USD
1.87% -
tether $0.999129 USD
0.01% -
bnb $757.919161 USD
4.46% -
xrp $1.326644 USD
1.83% -
usd-coin $0.999883 USD
0.00% -
solana $105.801069 USD
5.74% -
tron $0.336062 USD
0.26% -
zcash $1493.817548 USD
9.92% -
hyperliquid $87.820963 USD
10.59% -
dogecoin $0.084335 USD
3.93% -
monero $532.699812 USD
7.43% -
chainlink $11.814085 USD
5.52% -
unus-sed-leo $8.892918 USD
-0.42% -
cardano $0.214025 USD
7.76%
如何升级智能合约?
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),我们将及时删除。
- 随着 Avalanche Chain 拥抱代币化基金和机构增长,AVAX 价格飙升
- 2026-09-18 16:50:01
- 日本央行加息:日元、比特币和套利交易的平仓
- 2026-09-18 12:50:01
- XRP Ledger 通过重大更新拥抱原生借贷和交易捆绑
- 2026-09-18 12:30:01
- CFTC 为被动加密货币交易软件提供经纪商注册减免,标志着更广泛的监管转变
- 2026-09-18 12:55:01
- 美国收紧控制:在海事支付调查中针对伊朗加密货币交易所 BitBank 实施新制裁
- 2026-09-18 12:45:01
- 美国财政部制裁伊朗交易所 BitBank 超过 10 亿美元的加密货币流动:纽约观点
- 2026-09-18 12:55:01
相关百科
如何查看SOL期货成交量和持仓量?
2026-09-14 00:40:03
访问 SOL 期货市场数据1. 前往SOL永续合约或季度合约上市的官方交易平台,例如Bybit、OKX或Bitget。 2. 找到SOL/USDT或SOL/USD期货交易对页面,切换到“合约概览”或“市场数据”选项卡。 3. 识别标记为“交易量(24 小时)”和“未平仓合约”的实时字段,这两个字段通...
如何查看XRP期货交易量和持仓量?
2026-09-15 05:00:12
访问实时 XRP 期货数据1. 访问列出 XRP 永续合约和季度期货合约的主要衍生品交易所,包括 Binance、Bybit、OKX 和 Bitget。 2. 导航至XRP/USDT或XRP/USD交易对页面,找到实时显示交易量和持仓量数据的市场深度面板。 3. 确认显示的持仓量是否反映了多头/空头...
如何查看DOGE期货成交量及持仓量?
2026-09-12 08:39:38
了解 DOGE 期货交易量1. 期货交易量是指在特定时间范围内交易的DOGE份期货合约的总数,通常以每天或每小时计算。 2. 高成交量通常表明市场参与度较高,并且可以表明潜在的趋势延续或逆转,具体取决于价格走势背景。 3. 交易者监控交易量峰值以及突破或崩溃,以评估合法性——交易量上升支持的持续价格...
如何查看ETH期货交易量和持仓量?
2026-09-16 19:00:18
访问实时 ETH 期货数据1. Binance、Bybit和OKX等主要中心化交易所提供实时仪表板,显示ETH永续和季度期货交易量和持仓量。这些指标每 5-10 秒更新一次,无需登录其公开市场页面即可访问。 2. Glassnode、CryptoQuant 和 Coinglass 等链上分析平台可以...
如何查看BTC期货交易量和持仓量?
2026-09-12 15:19:55
BTC期货指标的数据源1. CoinGlass API v4 提供 30 多个交易所的实时融资利率、清算热图和精细的未平仓合约细分。 2. 币安期货 API 提供对买卖深度、合约特定交易量历史记录和保证金比率快照的本机访问。 3. OKX 数据门户提供可下载的 CSV 档案,其中包含每日结算价格、按...
如何看懂DOGEUSDT永续合约图表?
2026-09-11 19:19:48
了解 DOGEUSDT 永续图表上的价格走势1. 蜡烛图的形成揭示了直接的市场情绪——绿色蜡烛表示买盘占主导地位,而红色蜡烛则反映该区间内的抛售压力。 2. 实体上方和下方的灯芯信号拒绝更高或更低的价格;在波动较大的模因币市场中,长上影线通常先于短期反转。 3. 接近关键水平的连续小实体蜡烛表明在突...
如何查看SOL期货成交量和持仓量?
2026-09-14 00:40:03
访问 SOL 期货市场数据1. 前往SOL永续合约或季度合约上市的官方交易平台,例如Bybit、OKX或Bitget。 2. 找到SOL/USDT或SOL/USD期货交易对页面,切换到“合约概览”或“市场数据”选项卡。 3. 识别标记为“交易量(24 小时)”和“未平仓合约”的实时字段,这两个字段通...
如何查看XRP期货交易量和持仓量?
2026-09-15 05:00:12
访问实时 XRP 期货数据1. 访问列出 XRP 永续合约和季度期货合约的主要衍生品交易所,包括 Binance、Bybit、OKX 和 Bitget。 2. 导航至XRP/USDT或XRP/USD交易对页面,找到实时显示交易量和持仓量数据的市场深度面板。 3. 确认显示的持仓量是否反映了多头/空头...
如何查看DOGE期货成交量及持仓量?
2026-09-12 08:39:38
了解 DOGE 期货交易量1. 期货交易量是指在特定时间范围内交易的DOGE份期货合约的总数,通常以每天或每小时计算。 2. 高成交量通常表明市场参与度较高,并且可以表明潜在的趋势延续或逆转,具体取决于价格走势背景。 3. 交易者监控交易量峰值以及突破或崩溃,以评估合法性——交易量上升支持的持续价格...
如何查看ETH期货交易量和持仓量?
2026-09-16 19:00:18
访问实时 ETH 期货数据1. Binance、Bybit和OKX等主要中心化交易所提供实时仪表板,显示ETH永续和季度期货交易量和持仓量。这些指标每 5-10 秒更新一次,无需登录其公开市场页面即可访问。 2. Glassnode、CryptoQuant 和 Coinglass 等链上分析平台可以...
如何查看BTC期货交易量和持仓量?
2026-09-12 15:19:55
BTC期货指标的数据源1. CoinGlass API v4 提供 30 多个交易所的实时融资利率、清算热图和精细的未平仓合约细分。 2. 币安期货 API 提供对买卖深度、合约特定交易量历史记录和保证金比率快照的本机访问。 3. OKX 数据门户提供可下载的 CSV 档案,其中包含每日结算价格、按...
如何看懂DOGEUSDT永续合约图表?
2026-09-11 19:19:48
了解 DOGEUSDT 永续图表上的价格走势1. 蜡烛图的形成揭示了直接的市场情绪——绿色蜡烛表示买盘占主导地位,而红色蜡烛则反映该区间内的抛售压力。 2. 实体上方和下方的灯芯信号拒绝更高或更低的价格;在波动较大的模因币市场中,长上影线通常先于短期反转。 3. 接近关键水平的连续小实体蜡烛表明在突...
查看所有文章














