市值: $2.6065T 1.56%
體積(24小時): $68.1613B 6.30%
恐懼與貪婪指數:

35 - 害怕

  • 市值: $2.6065T 1.56%
  • 體積(24小時): $68.1613B 6.30%
  • 恐懼與貪婪指數:
  • 市值: $2.6065T 1.56%
加密
主題
加密植物
資訊
加密術
影片
頂級加密植物

選擇語言

選擇語言

選擇貨幣

加密
主題
加密植物
資訊
加密術
影片

如何升級智能合約?

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),我們將及時刪除。

相關知識

如何計算持有 BTCUSDT 期貨部位的總成本

如何計算持有 BTCUSDT 期貨部位的總成本

2026-10-26 04:06:35

BTCUSDT 期貨部位的總成本構成1. 持有BTCUSDT期貨部位的總成本包括顯性費用和隱性費用。顯性成本包括開倉和平倉交易費用,而隱性成本主要來自一段時間內的資金費率支付或收入。 2. 開倉費用是依照入場時的名目價值與交易所的吃單/掛單費用表的乘積計算-對於主要平台上的吃單來說,開倉費用通常在 ...

如何同時監控 XRPUSDT 資金費率和未平倉合約

如何同時監控 XRPUSDT 資金費率和未平倉合約

2026-10-20 18:39:42

XRPUSDT 永續合約的資金費率機制1. XRPUSDT永續合約的資金費率每八小時計算一次,使用XRP和USDT計價借貸市場之間的溢價指數和利差。 2. Binance、Bybit 和 OKX 等交易所在其衍生性商品 API 端點中發布即時資金費率數據,從而實現儀表板或警報系統的自動攝取。 3. ...

如何設定 SOLUSDT 永續合約損益兩平止損

如何設定 SOLUSDT 永續合約損益兩平止損

2026-10-23 09:34:18

了解損益平衡停損機制1. 損益平衡停損是一種動態訂單,隨著部位獲利變動而向上調整,執行時鎖定零淨損失。 2. 它僅在交易達到預定利潤閾值後才起作用——通常是初始風險或入場費的 1 至 2 倍。 3. 在幣安 SOLUSDT 永續合約上,此邏輯必須手動觸發或編寫腳本,因為本機交易所 UI 不會自動將停...

如何使用幣安期貨計算器進行 ETHUSDT 交易

如何使用幣安期貨計算器進行 ETHUSDT 交易

2026-10-21 02:00:11

了解幣安期貨計算器介面1. 此計算器直接嵌入幣安合約交易介面中,可透過訂單輸入面板下的 ETHUSDT 永續合約頁面存取。 2. 隨著使用者調整輸入欄位(包括倉位大小、入場價格、槓桿水平以及止盈或停損水平),它會動態更新。 3. 接受多種格式的輸入值:合約數量(ETH)、名目價值(USDT)或保證金...

合約強平前如何查看BTCUSDT標記價格

合約強平前如何查看BTCUSDT標記價格

2026-10-26 12:20:18

了解BTCUSDT期貨的標記價格1. 標記價格是交易所為防止市場波動期間出現不公平清算而使用的計算值。 2.反映了來自多個來源的公平、穩定的參考價格,包括指數價格和資金費率。 3. 與最新成交價不同,標記價格包含頂級現貨交易所的時間加權平均值,以降低操縱風險。 4. 在幣安上,BTCUSDT標記價格...

如何調整 TRUMPUSDT 永續合約的槓桿

如何調整 TRUMPUSDT 永續合約的槓桿

2026-10-30 22:19:37

了解 TRUMPUSDT 永續合約機制1. TRUMPUSDT 是在多個一級衍生品交易所上市的主題永續期貨合約,旨在追蹤圍繞美國政治敘事而非基礎資產基本面的價格情緒。 2.依平台不同,採用標準的反向或線性結算邏輯,以USDT作為報價和保證金資產。 3. 合約使用的標記價格源自現貨 BTC/USDT、...

如何計算持有 BTCUSDT 期貨部位的總成本

如何計算持有 BTCUSDT 期貨部位的總成本

2026-10-26 04:06:35

BTCUSDT 期貨部位的總成本構成1. 持有BTCUSDT期貨部位的總成本包括顯性費用和隱性費用。顯性成本包括開倉和平倉交易費用,而隱性成本主要來自一段時間內的資金費率支付或收入。 2. 開倉費用是依照入場時的名目價值與交易所的吃單/掛單費用表的乘積計算-對於主要平台上的吃單來說,開倉費用通常在 ...

如何同時監控 XRPUSDT 資金費率和未平倉合約

如何同時監控 XRPUSDT 資金費率和未平倉合約

2026-10-20 18:39:42

XRPUSDT 永續合約的資金費率機制1. XRPUSDT永續合約的資金費率每八小時計算一次,使用XRP和USDT計價借貸市場之間的溢價指數和利差。 2. Binance、Bybit 和 OKX 等交易所在其衍生性商品 API 端點中發布即時資金費率數據,從而實現儀表板或警報系統的自動攝取。 3. ...

如何設定 SOLUSDT 永續合約損益兩平止損

如何設定 SOLUSDT 永續合約損益兩平止損

2026-10-23 09:34:18

了解損益平衡停損機制1. 損益平衡停損是一種動態訂單,隨著部位獲利變動而向上調整,執行時鎖定零淨損失。 2. 它僅在交易達到預定利潤閾值後才起作用——通常是初始風險或入場費的 1 至 2 倍。 3. 在幣安 SOLUSDT 永續合約上,此邏輯必須手動觸發或編寫腳本,因為本機交易所 UI 不會自動將停...

如何使用幣安期貨計算器進行 ETHUSDT 交易

如何使用幣安期貨計算器進行 ETHUSDT 交易

2026-10-21 02:00:11

了解幣安期貨計算器介面1. 此計算器直接嵌入幣安合約交易介面中,可透過訂單輸入面板下的 ETHUSDT 永續合約頁面存取。 2. 隨著使用者調整輸入欄位(包括倉位大小、入場價格、槓桿水平以及止盈或停損水平),它會動態更新。 3. 接受多種格式的輸入值:合約數量(ETH)、名目價值(USDT)或保證金...

合約強平前如何查看BTCUSDT標記價格

合約強平前如何查看BTCUSDT標記價格

2026-10-26 12:20:18

了解BTCUSDT期貨的標記價格1. 標記價格是交易所為防止市場波動期間出現不公平清算而使用的計算值。 2.反映了來自多個來源的公平、穩定的參考價格,包括指數價格和資金費率。 3. 與最新成交價不同,標記價格包含頂級現貨交易所的時間加權平均值,以降低操縱風險。 4. 在幣安上,BTCUSDT標記價格...

如何調整 TRUMPUSDT 永續合約的槓桿

如何調整 TRUMPUSDT 永續合約的槓桿

2026-10-30 22:19:37

了解 TRUMPUSDT 永續合約機制1. TRUMPUSDT 是在多個一級衍生品交易所上市的主題永續期貨合約,旨在追蹤圍繞美國政治敘事而非基礎資產基本面的價格情緒。 2.依平台不同,採用標準的反向或線性結算邏輯,以USDT作為報價和保證金資產。 3. 合約使用的標記價格源自現貨 BTC/USDT、...

看所有文章

User not found or password invalid

Your input is correct