成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

以太坊智能合約開發(fā)時(shí)升級(jí)策略是什么

本篇內(nèi)容介紹了“以太坊智能合約開發(fā)時(shí)升級(jí)策略是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

安州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),安州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為安州近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的安州做網(wǎng)站的公司定做!

100%可智能合約開發(fā)升級(jí)機(jī)制

目前有兩種主要策略用來實(shí)現(xiàn)可升級(jí)的智能合約:

  • 使用代理合約

  • 將邏輯和數(shù)據(jù)分離成不同的合約。

這兩種方法要解決的根本問題是如何更新合同的邏輯,同時(shí)仍然保留對(duì)合同狀態(tài)的訪問。

代理智能合約

代理合約使用delegatecall操作碼將函數(shù)調(diào)用轉(zhuǎn)發(fā)到可更新的目標(biāo)合約。 由于delegatecall保留了函數(shù)調(diào)用的狀態(tài),因此可以更新目標(biāo)合約的邏輯,并且狀態(tài)將保留在代理合約中以供更新后的目標(biāo)合約的邏輯使用。 與delegatecall一樣,msg.sender將保持代理合約的調(diào)用者身份。

由于最近的拜占庭硬分叉,現(xiàn)在可以獲取函數(shù)調(diào)用的返回大小了,因此與Nick Johnson首次提出的方法相比,目前這種方法可以通用。 在Daonomic的文章中可以看到一個(gè)通用代理合約的例子,你可以更詳細(xì)地了解這個(gè)機(jī)制。

智能合約開發(fā)分離邏輯和數(shù)據(jù)

這中方法到將智能合約拆分兩個(gè)合約:

  • 包含數(shù)據(jù)(變量,結(jié)構(gòu),映射等)以及getter/setter的數(shù)據(jù)合約

  • 包含如何更新這些數(shù)據(jù)的業(yè)務(wù)邏輯的邏輯合約

邏輯合約通過setter更新數(shù)據(jù),而數(shù)據(jù)合約只允許邏輯合約調(diào)用setter。 這允許在保持?jǐn)?shù)據(jù)不變的同時(shí)更換實(shí)現(xiàn)邏輯,從而實(shí)現(xiàn)完全可升級(jí)的系統(tǒng)。

通過引導(dǎo)用戶使用新的邏輯合約(通過諸如ENS的解析器)并更新數(shù)據(jù)合約的權(quán)限來允許新的邏輯合約 執(zhí)行setter,就可以實(shí)現(xiàn)合約的更新。

查看Thomas Wiesne的視頻以更好地了解這一機(jī)制。

使用鍵值對(duì)數(shù)據(jù)模型分離邏輯和數(shù)據(jù)合約

這種策略的工作原理與上述類似,只是不使用最終期望數(shù)據(jù)結(jié)構(gòu)(struct,mapping等)來定義合約數(shù)據(jù)模型,所有數(shù)據(jù)都被抽象化并存儲(chǔ)在鍵值對(duì)中,然后使用一個(gè)標(biāo)準(zhǔn)的命名系統(tǒng)以及sha256散列算法用于查找數(shù)據(jù)值。

可以查閱David Rugendyke的文章以更好地理解這種機(jī)制。

部分智能合約開發(fā)時(shí)可升級(jí)策略

創(chuàng)建一個(gè)完全可升級(jí)的合約聽起來不錯(cuò),但需要一個(gè)很大的妥協(xié):保證合約的不可變性。 因此在很多情況下 實(shí)現(xiàn)部分可升級(jí)的合約可能是更合理的選擇。

在此策略中,智能合約的核心功能可以保留為不可升級(jí)。 其他可能不太完整或更復(fù)雜的組件則采用可升級(jí)策略實(shí)施。

這方面已經(jīng)有一些很好的案例:

  • 以太坊名稱服務(wù)ENS:ENS核心合約是一個(gè)非常簡單的合約,不能更改。域名注冊(cè)商則可以由管理員升級(jí)。 域名注冊(cè)商是一個(gè)合約工廠,如果使用一個(gè)新的域管理器,它可以與以前的所有數(shù)據(jù)狀態(tài)重新鏈接,而不會(huì)有太多麻煩。

  • 0xProject:603DEX(去中心化交易所)核心智能合約可以完全升級(jí),而代理合約(每個(gè)用戶一個(gè))保持不變。0x“代理”合約(不同于前面介紹的代理策略)包含用戶資金和相關(guān)設(shè)置。 由于這個(gè)原因,它不是0x合約系統(tǒng)的可升級(jí)部分。

其他挑戰(zhàn)

  • 在所有情況下,都需要對(duì)是否保持智能合約的不變性進(jìn)行取舍。

  • 創(chuàng)建可選的可升級(jí)智能合約系統(tǒng)對(duì)用戶來說是可能并且有價(jià)值的,但是增加了復(fù)雜性。

  • 對(duì)Solidity編譯器的更改可能會(huì)破壞新舊合約之間的兼容性。

  • 制定可升級(jí)策略時(shí)需要考慮gas開銷。

“以太坊智能合約開發(fā)時(shí)升級(jí)策略是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

文章標(biāo)題:以太坊智能合約開發(fā)時(shí)升級(jí)策略是什么
分享地址:http://jinyejixie.com/article12/ppicgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站制作、域名注冊(cè)Google、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
盘山县| 错那县| 龙口市| 湘西| 张家界市| 平乡县| 当阳市| 永登县| 阳谷县| 孟州市| 色达县| 阳谷县| 忻州市| 东阳市| 沧源| 永顺县| 运城市| 酒泉市| 达州市| 射阳县| 昌都县| 江西省| 巩留县| 铁力市| 芦山县| 东乡族自治县| 建昌县| 灵川县| 九寨沟县| 湾仔区| 鄂尔多斯市| 盐亭县| 冕宁县| 会泽县| 洱源县| 临潭县| 青海省| 安图县| 闽侯县| 肥东县| 瑞昌市|