-
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),我們將及時刪除。
- 第 60 屆超級碗:泰迪熊游泳、綠日節和 2026 年盛會的傳統拋擲套裝
- 2026-02-05 07:20:02
- 夢幻足球超級聯賽第 25 輪:關鍵球員選擇、技巧和最佳球隊表現的建議
- 2026-02-05 07:15:02
- Remittix 推出 PayFi 平台並提供 300% 豐厚獎金優惠,令投資者興奮不已
- 2026-02-05 07:05:01
- FirstEnergy 在六個州種植了數千棵樹,打造綠色社區
- 2026-02-05 07:15:02
- 大蘋果賭注:揭開最新的無存款獎金、賭場獎金和免費旋轉狂潮
- 2026-02-05 07:10:01
- Nubank、Enova 和盈透證券:引領金融的未來
- 2026-02-05 07:10:01
相關知識
期貨中如何管理情緒和“報復性交易”?
2026-02-05 00:19:32
了解期貨市場的情緒觸發因素1. 市場波動直接影響心理狀態,往往會因價格快速波動而加劇恐懼或興奮。 2. 損失會激活大腦的威脅反應系統,導致衝動決策而不是系統分析。 3. 社交媒體信息和群聊經常強化情緒化敘事,扭曲客觀風險評估。 4. 過度接觸實時損益更新會增加皮質醇水平,從而降低頭寸管理期間的認知靈...
如何利用恐懼和貪婪指數分析市場情緒?
2026-02-05 07:40:21
了解恐懼和貪婪指數1. 恐懼和貪婪指數是一個綜合指標,旨在量化加密貨幣投資者普遍的情緒狀態。它匯總了多個來源的數據,包括波動性、市場勢頭、社交媒體活動、調查結果、Bitcoin 主導地位和搜索趨勢。 2. 0分代表極度恐懼,100分代表極度貪婪。 0-24 之間的值表示強烈恐懼,25-49 表示恐懼...
如何使用成交量概況來查找關鍵的期貨入場水平?
2026-02-04 23:39:35
了解卷配置文件結構1. 成交量概況顯示指定時間段內特定價格水平的交易量分佈,在圖表上形成水平直方圖。 2. 控制點(POC)代表成交量集中度最高的價格水平,通常充當價格反轉的磁石。 3. 價值區域高位 (VAH) 和價值區域低位 (VAL) 包含佔總交易量 70% 的範圍,標誌著統計上顯著的支撐和阻...
如何利用全倉槓桿交易最大化資金效率?
2026-02-05 00:40:24
全倉保證金交易基礎知識1. 全倉保證金交易允許交易者使用其全部賬戶餘額作為抵押品同時跨多個市場開倉。 2. 與逐倉保證金不同,全倉保證金會動態分配錢包中持有的所有資產的權益。 3. 當一種資產經歷短期波動而其他資產保持穩定或增值時,該模型降低了過早清算的風險。 4. 保證金利用率是根據投資組合範圍內...
如何使用指數移動平均線(EMA)進行期貨趨勢追踪?
2026-02-05 04:40:17
了解期貨市場中的 EMA 機制1. 指數移動平均線為最近的價格數據分配更大的權重,使其比簡單移動平均線更具響應性。 2. 交易者通常使用 9 週期、21 週期和 50 週期 EMA 來捕捉短期、中期和長期動量變化。 3. 在高槓桿期貨合約中,快速 EMA 交叉可能預示著政權的突然變化——尤其是在新聞...
如何使用TradingView警報自動執行期貨交易?
2026-02-04 21:00:31
設置期貨合約的 TradingView 警報1. 登錄您的 TradingView 賬戶並打開所需期貨工具的圖表,例如 Binance 或 Bybit 上的 BTC/USD 或 ETH/USD 永續合約。 2. 使用您喜歡的指標、燭台時間框架和繪圖工具配置圖表,以定義精確的入場和出場條件。 3. 點...
期貨中如何管理情緒和“報復性交易”?
2026-02-05 00:19:32
了解期貨市場的情緒觸發因素1. 市場波動直接影響心理狀態,往往會因價格快速波動而加劇恐懼或興奮。 2. 損失會激活大腦的威脅反應系統,導致衝動決策而不是系統分析。 3. 社交媒體信息和群聊經常強化情緒化敘事,扭曲客觀風險評估。 4. 過度接觸實時損益更新會增加皮質醇水平,從而降低頭寸管理期間的認知靈...
如何利用恐懼和貪婪指數分析市場情緒?
2026-02-05 07:40:21
了解恐懼和貪婪指數1. 恐懼和貪婪指數是一個綜合指標,旨在量化加密貨幣投資者普遍的情緒狀態。它匯總了多個來源的數據,包括波動性、市場勢頭、社交媒體活動、調查結果、Bitcoin 主導地位和搜索趨勢。 2. 0分代表極度恐懼,100分代表極度貪婪。 0-24 之間的值表示強烈恐懼,25-49 表示恐懼...
如何使用成交量概況來查找關鍵的期貨入場水平?
2026-02-04 23:39:35
了解卷配置文件結構1. 成交量概況顯示指定時間段內特定價格水平的交易量分佈,在圖表上形成水平直方圖。 2. 控制點(POC)代表成交量集中度最高的價格水平,通常充當價格反轉的磁石。 3. 價值區域高位 (VAH) 和價值區域低位 (VAL) 包含佔總交易量 70% 的範圍,標誌著統計上顯著的支撐和阻...
如何利用全倉槓桿交易最大化資金效率?
2026-02-05 00:40:24
全倉保證金交易基礎知識1. 全倉保證金交易允許交易者使用其全部賬戶餘額作為抵押品同時跨多個市場開倉。 2. 與逐倉保證金不同,全倉保證金會動態分配錢包中持有的所有資產的權益。 3. 當一種資產經歷短期波動而其他資產保持穩定或增值時,該模型降低了過早清算的風險。 4. 保證金利用率是根據投資組合範圍內...
如何使用指數移動平均線(EMA)進行期貨趨勢追踪?
2026-02-05 04:40:17
了解期貨市場中的 EMA 機制1. 指數移動平均線為最近的價格數據分配更大的權重,使其比簡單移動平均線更具響應性。 2. 交易者通常使用 9 週期、21 週期和 50 週期 EMA 來捕捉短期、中期和長期動量變化。 3. 在高槓桿期貨合約中,快速 EMA 交叉可能預示著政權的突然變化——尤其是在新聞...
如何使用TradingView警報自動執行期貨交易?
2026-02-04 21:00:31
設置期貨合約的 TradingView 警報1. 登錄您的 TradingView 賬戶並打開所需期貨工具的圖表,例如 Binance 或 Bybit 上的 BTC/USD 或 ETH/USD 永續合約。 2. 使用您喜歡的指標、燭台時間框架和繪圖工具配置圖表,以定義精確的入場和出場條件。 3. 點...
看所有文章














