比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

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

Author:

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

本文作者:powervip

以太坊智能合約升級

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

思路

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

美眾議院金融服務委員會:正深入研究如何更好地監管加密行業:金色財經報道,據官方推特消息,美國眾議院金融服務委員會正在關注加密貨幣作為長期投資的影響,并正在深入研究如何更好地監管這個快速增長的行業。[2021/7/1 0:18:18]

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

Robinhood因未恰當披露如何應對高頻交易機構而遭到調查:金色財經報道,股票與加密貨幣投資平臺Robinhood因未能恰當地披露如何將客戶訂單發送給高頻交易機構而受到民事欺詐調查。根據報告,這項由美國證券交易委員會(SEC)進行的調查已進入“高級階段”,可能導致其遭到1000萬美元的罰款。[2020/9/3]

例子

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

聲音 | 澳本聰:2019年1月將開始通過SPV系統向人們展示比特幣如何擴容:澳本聰剛剛發推稱:2019年1月,我們將開始向人們展示比特幣(任何區塊鏈)如何擴容,這要求是SPV系統,而該系統不使用服務器(所以以太坊不是SPV)。而且這將獲得專利,并被授權給SV獨家使用。[2018/12/9]

圖1升級前的合約代碼

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

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

金色財經獨家整理 貿易戰對比特幣走勢影響如何?貿易戰避險,比特幣“效果不錯”:

今日凌晨,中美史上最大貿易戰打響,全球股市重挫,數字資產比特幣走勢如何再被討論。重溫早在3月2日Brian Kelly在CNBC的關于貿易戰的言論:貿易戰將加強美元貶值、物價上漲的預期,由于普遍擔憂通脹,人們愿意投資比特幣這樣的“新黃金”、 “硬資產”(避險),“在貿易戰中,比特幣效果不錯”。

Brian Kelly的觀點發表于300億美元貿易戰規模預測下,而今600萬“變本加厲”。中國已于今晨展開“反擊”,外媒也普遍預測美國為長期輸家。股市下跌將支撐黃金,金價在昨日由于加息和貿易戰擔憂下收于兩周最高點,而比特幣為何反而下跌?據CNBC稱:比特幣未守住9000美元關口或因日本對加密數字貨幣加強監管力度的政策可能。金色財經認為,由于政策目前仍為影響比特幣的主要因素,在最晚今年7月份國際監管措施出臺、政策逐步趨穩后,數字貨幣價格將逐漸與黃金漲跌保持相似的變動。[2018/3/23]

圖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:NUMCALALL比特幣Num ARSPascal CoinBitcoin E-wallet比特幣行情分析及最新消息10.0ok

pepe最新價格
MEX:MEXC關於KEEP3S、 AXS3S、 LTC5S、 ETH5S、 BTC2S 等 8種 ETF產品進行份額合並的公告

尊敬的用戶: 由於杠桿ETF產品KEEP3S、AXS3S、LTC5S、ETH5S、BTC2S、BTC5S、NEAR3S和BAL3S的單價均低於0.1USDT.

1900/1/1 0:00:00
區塊鏈:星球日報 | a16z高管計劃本周與美國高層會面,推動Web3立法;DeFi協議鎖倉量破2000億美元(10月14日)

a16z高管計劃本周與美國國會及白宮官員會面,以推動Web3相關立法a16z高管計劃本周與美國國會及白宮官員會面討論Web3的監管問題.

1900/1/1 0:00:00
ETH:一位以太坊用戶在參與 Strips Finance 公募時,支付了價值 53.5 萬美元交易費但卻沒購買成功

鏈聞消息,據TheBlock報道,在昨日去中心化利率互換衍生品DEXStripsFinance在代幣銷售平臺Miso公募時,一位以太坊用戶支付了123枚ETH交易費卻沒有購買成功.

1900/1/1 0:00:00
GATE:Gate.io博客:【熱點分析】一句話讓Shib暴漲3倍?除了馬斯克外還有巨鯨效應

10月4日,馬斯克在推特上曬出愛犬Floki的照片,此后,Shib價格最高上漲了337%,隨著Shib價格一路走高,SHIBAINU項目市值也突破100億美元大關,最高達到140億美元.

1900/1/1 0:00:00
PEN:OpenPunks盲盒1分08秒售罄:明日解鎖 150個限量盲盒(第6日)

首批OpenPunks發售已于10月11日正式發售,截至10月15日下午2點,共解鎖OpenPunks盲盒750個.

1900/1/1 0:00:00
USD:XT關于恢復BUGG交易的公告

尊敬的XT用戶: 應項目方要求,XT將于2021年10月16日12:00恢復BUGG/USDT交易對。充提開放時間請關注后續公告.

1900/1/1 0:00:00
ads