以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

AIN:如何利用 delegatecall 進行以太坊智能合約升級

Author:

Time:1900/1/1 0:00:00

本文作者:powervip

以太坊智能合約升級

在以太坊智能合約的開發過程中,對于一些復雜的合約開發,要開發出完美沒有bug的智能合約,要求是相當高的。即使編寫出來的智能合約能完美沒有bug,也很難保證以后的需求和應用業務邏輯一成不變。所以,在開發智能合約的同時,就要考慮好以后的合約更新和升級問題。

思路

以太坊智能合約的更新和升級,其中一種思路就是:在智能合約的編寫過程中,要做到數據和應用邏輯的分離。簡單來說,就是把數據和應用邏輯分別放在2個獨立的合約里(本文稱之為數據合約和業務合約)。我們在升級合約時,保證存放數據的數據合約里的數據結構不改變,改變的只是存放應用邏輯的業務合約。這樣才能保證原有的業務數據不被破壞和能夠繼續使用。

美國共和黨人希望美聯儲給出如何證明數字美元合理性的答案:金色財經報道,眾議員Patrick McHenry聯合眾議院金融服務委員會致信要求美聯儲副主席Lael Brainard,要求解釋對中央銀行權威的看法,并就如何證明數字美元的合理性給出答案。

鮑威爾回應了共和黨立法者的主要擔憂,表示“我們不打算在沒有行政部門和國會明確支持的情況下繼續發行CBDC,最好是以特定授權的形式”。(CoinDesk)[2022/9/9 13:18:00]

Solidity有三種合約間的調用方式call、delegatecall和callcode。其中,delegatecall可作為智能合約升級的一個較好的途徑。關于合約間的調用方式call、delegatecall和callcode,詳見我另一篇文章<<圖文并茂詳細介紹Solidity的三種合約間的調用方式call、delegatecall和callcode>>,有興趣的同學們可以看一下。原文鏈接:https://blog.csdn.net/powervip/article/details/104330170

沃爾瑪調查其與萊特幣合作的虛假新聞稿是如何發布的:9月14日消息,在與萊特幣合作的假消息傳出后,沃爾瑪公司表示正在調查欺詐性新聞稿是如何發布的。The Litecoin Foundation和Charlie Lee也在調查此事。此外,Globenewswire表示,它還將與當局合作,“要求并促進進行全面調查,包括與此事相關的任何犯罪活動。”(Bitcoin News)[2021/9/15 23:25:08]

例子

假設我們要計算一個求和公式:numC=numAnumB我把數據numA、numB、numC作為數據存放在數據合約contractA中,把求和的業務邏輯放在數據合約contractB中。為了演示合約升級,我故意把contractB中的業務邏輯函數calcSum()中的加法運算故意寫成乘法運算,以便后面進行合約升級。代碼不是很復雜,代碼如下:

直播|“后浪”仙女周|熱幣-Merry如何乘風破浪:金色財經 · 直播主辦的《 幣圈 “后浪” 仙女直播周》第7期16:00 Hotcoin Global|首席品牌官 Merry將在直播間聊聊“幣圈‘后浪’仙女如何乘風破浪”,感興趣的朋友掃碼移步收聽![2020/7/1]

圖1升級前的合約代碼

我們先部署合約A,再部署合約B。通過合約A的setNumA()函數把NumA設為1,通過合約A的setNumB()函數把NumB設為2,再復制合約A的地址0x692a70D2e424a56D2C6C27aA97D1a86395877b3A。

然后,我們部署合約B,并把合約A的地址粘貼到函數run_sum()的參數欄中,見下圖。運行函數run_sum()。這時候,我們再點擊numC,會看到numC的值為2。顯然,這不是我們想要的求和結果。

動態 | 烏克蘭國會收到一項關于應如何對與加密有關的收入征稅的草案:據Coindesk消息,一項草案規定了烏克蘭應如何對與加密有關的收入征稅,該草案已提交給該國議會Verkhovna Rada。該法案是由烏克蘭數字轉型部、區塊鏈4ukraine派系議會協會和更好的監管交付辦公室(BRDO)組織起草的。這份由13名議會成員撰寫的文件旨在修訂烏克蘭的稅法,并引入與加密資產相關的主要概念。該法案將此類資產定義為“一種特殊類型的有價值財產,以數字形式創建、記賬并通過電子方式處理”,比如加密貨幣、代幣以及草案中未指定的其他類型。總部位于烏克蘭的加密貨幣交易所Kuna的創始人,烏克蘭區塊鏈協會主席Michael Chobanian表示,他相信這項法律將奏效,但該行業還面臨其他障礙,需要解決。[2019/11/20]

圖2部署合約B,并把合約A的地址粘貼到函數run_sum()的參數欄中

我們把函數calcSum()的returna*b;這句注釋掉,把returnab;這句的注釋去掉,變成下面的代碼:

圖3升級后的合約代碼

先刪掉合約B,重新編譯和部署合約B,并把合約A的地址粘貼到函數run_sum()的參數欄中重新運行run_sum()。這時候,我們再點擊numC,會看到numC的值為3。合約B升級成功,由原來的乘法運算升級為加法運算。合約A原來的NumA和NumB的內容完美地保留了下來。

如果你覺得這篇文章寫得還可以,請幫忙點個贊,謝謝!你的鼓勵,我的動力!

我的github:https://github.com/powervip

參考資料

powervip:https://learnblockchain.cn/people/5018

以太坊:https://learnblockchain.cn/article/1201

智能合約:https://learnblockchain.cn/article/1258

Solidity:https://learnblockchain.cn/docs/solidity/

免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。

本文來源于非小號媒體平臺:

登鏈社區

現已在非小號資訊平臺發布105篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/10423871.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

每周編輯精選WeeklyEditors&#039;Picks

Tags:NUMCALALLAINNumbers ProtocolCalamari NetworkThe ParallelMechanic Chain.AI

狗狗幣最新價格
TPS:關于幣幣交易0手續費活動結束日期的公告

關于幣幣交易0手續費活動結束日期的公告作者AAXManager一周前已更新尊敬的用戶:AAX自7月開始對所選幣對實行0手續費交易,8月1日起活動延伸至所有幣對.

1900/1/1 0:00:00
Gate.io:關于如何解綁手機號綁定郵箱的公告

尊敬的用戶: WBF已于暫停短信服務通知,具體詳情見《關于WBF調整短信通知服務的公告》,由于很多用戶并未及時綁定郵箱和谷歌驗證器,導致其無法登陸,請無法登陸的用戶,聯系在線客服.

1900/1/1 0:00:00
LIBRA:中央網信辦等18個部門和單位聯合印發《關于組織申報區塊鏈創新應用試點的通知》

近日,中央網信辦會同中央宣傳部、國務院辦公廳、最高人民法院、最高人民檢察院、教育部、工業和信息化部、民政部、司法部、人力資源社會保障部、國家衛生健康委、中國人民銀行、國務院國資委、國家稅務總局、.

1900/1/1 0:00:00
加密貨幣:頭條觀察 | 未來5年加密貨幣市場將會有什么變化?

2020年,我們見證了去中心化金融、流動性挖礦和治理代幣的興起。2021年,情況幾乎沒有變化,加密貨幣的價格不斷上漲,越來越多的人采用加密貨幣,而這種流行的趨勢繼續影響著傳統經濟.

1900/1/1 0:00:00
AAB:AAX 視頻創作大賽獲勝者名單

AAX視頻創作大賽獲勝者名單作者AAXManager一周前已更新親愛的AAX用戶,2021年AAX視頻創作大賽圓滿結束。感謝大家作為視頻創作者的熱情參與.

1900/1/1 0:00:00
THE:以太坊基金會等團隊推出追蹤“Sign-In with Ethereum”進展的網站login.xyz

巴比特訊,10月19日,以太坊基金會、以太坊域名系統ENS、數字身份認證公司Spruce共同推出追蹤“Sign-InwithEthereum”進展的網站login.xyz.

1900/1/1 0:00:00
ads