本文作者:powervip
以太坊智能合约升级
在以太坊智能合约的开发过程中,对于一些复杂的合约开发,要开发出完美没有bug的智能合约,要求是相当高的。即使编写出来的智能合约能完美没有bug,也很难保证以后的需求和应用业务逻辑一成不变。所以,在开发智能合约的同时,就要考虑好以后的合约更新和升级问题。
思路
以太坊智能合约的更新和升级,其中一种思路就是:在智能合约的编写过程中,要做到数据和应用逻辑的分离。简单来说,就是把数据和应用逻辑分别放在2个独立的合约里(本文称之为数据合约和业务合约)。我们在升级合约时,保证存放数据的数据合约里的数据结构不改变,改变的只是存放应用逻辑的业务合约。这样才能保证原有的业务数据不被破坏和能够继续使用。
Circle首席财务官:无论市场如何,公司计划于今年四季度上市:7月19日消息,据Circle首席财务官JeremyFox-Geen透露,无论市场状况如何,预计Circle将于2022年底通过SPAC(SpecialPurposeAcquisitionCompany,即特殊目的收购公司)上市。
JeremyFox-Geen表示,Circle是一家注册的金融服务公司,就像PayPal或Apple一样,与ApplePay产品、移动支付服务Venmo运营商PayPal等支付公司一样,在相同的监管框架下运营。根据Circle公司发布的最新报告显示,USDC储备金现在完全以现金和三个月期美国国债的形式持有,与公司的运营完全分开。截至6月30日,流通中的USDC总量为55,569,519,982枚,支持USDC的储备资产总额为557亿美元。(decrypt)[2022/7/19 2:22:20]
Solidity有三种合约间的调用方式call、delegatecall和callcode。其中,delegatecall可作为智能合约升级的一个较好的途径。关于合约间的调用方式call、delegatecall和callcode,详见我另一篇文章<<图文并茂详细介绍Solidity的三种合约间的调用方式call、delegatecall和callcode>>,有兴趣的同学们可以看一下。原文链接:https://blog.csdn.net/powervip/article/details/104330170
马斯克回应查理芒格关于加密货币言论的推文:我们可能会死,但无论如何都值得一试:2月17日消息,马斯克回应一条关于芒格最新的批评加密货币言论的推文,加密货币应该被禁止,并称加密货币就像“性病”一样令人不齿。马斯克评论称,“2009年,我曾和芒格共进午餐,他向整个餐桌的人说特斯拉将如何失败。这让我很难过,但我告诉他,我同意所有这些理由,我们可能会死,但无论如何都值得一试。[2022/2/17 9:57:26]
例子
假设我们要计算一个求和公式:numC=numAnumB我把数据numA、numB、numC作为数据存放在数据合约contractA中,把求和的业务逻辑放在数据合约contractB中。为了演示合约升级,我故意把contractB中的业务逻辑函数calcSum()中的加法运算故意写成乘法运算,以便后面进行合约升级。代码不是很复杂,代码如下:
《“区块链+”如何重构内容产业生态》获第三十一届中国新闻奖三等奖:金色财经报道,人民日报(2021年11月08日 第?17版)发布第三十一届中国新闻奖获奖作品目录,《“区块链+”如何重构内容产业生态》获第三十一届中国新闻奖三等奖,刊播单位:新闻与写作?,报送单位:北京记协。[2021/11/8 6:37:41]
图1升级前的合约代码
我们先部署合约A,再部署合约B。通过合约A的setNumA()函数把NumA设为1,通过合约A的setNumB()函数把NumB设为2,再复制合约A的地址0x692a70D2e424a56D2C6C27aA97D1a86395877b3A。
大咖零距离 | 如何使用火箭战法2天盈利20倍:3月19日18:00,金色盘面邀请实盘大V庄见愁做客金色财经《大咖零距离》直播间,将分享《如何使用火箭战法2天盈利20倍》,敬请关注,欲进群观看直播扫描海报二维码报名即可![2020/3/19]
然后,我们部署合约B,并把合约A的地址粘贴到函数run_sum()的参数栏中,见下图。运行函数run_sum()。这时候,我们再点击numC,会看到numC的值为2。显然,这不是我们想要的求和结果。
图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'Picks
据新浪网消息,江苏省南通市局在“净网2020”专项行动中,成功侦破一起由部督办的特大制作、使用勒索病实施网络敲诈的案件,巨某等3名犯罪嫌疑人落网.
1900/1/1 0:00:00据路透社10月20日报道,芝加哥期权交易所全球市场周三表示,它正在收购ErisDigitalHoldings,这是一家数字资产现货和衍生品交易所,通过此次交易.
1900/1/1 0:00:00据Campaign10月17日消息,Facebook全球商务副总裁NicolaMenndelsoh在IABUKDigitalUpfronts会议上表示.
1900/1/1 0:00:00親愛的ZT用戶:ZT創新板即將上線ALCX,並開啟ALCX/USDT交易對。具體上線時間如下:充值:已開啟;交易:2021年10月15日17:00;ALCX項目簡介:Alchemix是一個以合成.
1900/1/1 0:00:00链闻消息,据CoinDesk援引消息人士报道,法国兴业银行正在寻求收购一家加密货币托管公司,或者至少获得其中一家的战略股权.
1900/1/1 0:00:00据TheBlock10月18日报道,美国第一个比特币交易所交易基金预计将在当地时间周二推出,近期将有大约5只比特币期货ETF准备推出,本周可能会推出2只.
1900/1/1 0:00:00