有些时候,由于前期考虑不周,或者后期设计升级,导致合约table字段需要增加,或者类型需要更改,所以需要数据迁移,下面举例我常用的升级方法假设目前合约内有个tablexxxinfo
struct]xxxinfo{uint64_tid;uint64_ttest;//为测试添加的字段uint8_ttest1;//为测试添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo"_n,xxxinfo>xxxinfo_tables;
现在升级需要解决的问题是test当初设计字段类型过大,导致ram浪费,test1选型过小,增加test2字段{uint32_t}.
DFINITY ICP将与比特币网络集成,为比特币网络提供智能合约支持:9月18日消息,DFINITY 关于“ICP 与比特币网络集成”的提案于9月17日以96.55%的高赞成票率得以通过,ICP 将通过应用 Chainkey 加密技术直接整合比特币网络,为比特币网络提供智能合约支持(该智能合约支持原生持有、发送和接受比特币,无需桥接和跨链),以使得比特币交易有更快的最终性和更低的成本。该提案的实施预计还需要数月的时间,团队将定期向社区汇报项目进展。[2021/9/18 23:35:01]
在合约中增加新的表结构xxxinfo1及其对象,并修正上面问题
struct]xxxinfo1{uint64_tid;uint32_ttest;//为测试添加的字段uint16_ttest1;//为测试添加的字段uint32_ttest2;//为测试添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;
历史上的今天丨苏黎世联邦理工学院开发以太坊智能合约扫描仪:2019年7月14日,游说公司Blockchain Association的Kristin Smith透露称,美国国会对Libra的听证会可能将会集中在Libra具体定义和监管、如何应对系统性风险及隐私安全问题。美国国会工作人员正考虑检查Libra是否符合证券、股票衍生品或ETF的定义,以及Libra如何获得保障,如何防止和应对其带来的经济系统性风险问题。同时Libra总部定为瑞士日内瓦,也会让监管人员担心这会限制美国对该项目的监管。Libra所带来的隐私问题也是大多数立法者的担忧。
2018年7月14日,苏黎世联邦理工学院的研究人员开发了一个以太坊智能合约扫描仪,用以检查智能合约是否存在漏洞、bug、或是其他潜在问题。这些研究人员包括Petar Tsankov博士,Hubert Ritzdorf博士,Martin Vechev教授和Arthur Gervais博士,他们都在系统安全方面拥有丰富的行业和学术经验,并且努力改进区块链智能合约。[2020/7/14]
此时合约内同时存在xxxinfo1和xxxinfo1两张表.
XVG与RSK智能合约平台开始进行测试网:XVG官方发布消息,已经与智能合约平台RSK于一周前开始进行合作,并开始进行测试网部署,RSK平台将直接纳入XVG。[2018/6/10]
增加迁移执行的action接口
//.hACTIONmigratexxx();//.cppvoidmigratexxx(){xxxinfo1_tablesxxxinfo1_table(_self,_self.value);xxxinfo_tablesxxxinfo_table(_self,_self.value);autoitr=xxxinfo_table.begin();while(itr!=xxxinfo_table.end()){xxxinfo1_table.emplace(_self,(auto&h){h.id=xxxinfo1_table.available_primary_key();h.test=itr->test;h.test1=itr->test1;});itr++;}}
Coinbase奖励发现其智能合约漏洞的公司一万美元:据cointelegraph,根据今天公布的一份报告,Coinbase在发现奖励了发现其智能合约漏洞的荷兰公司一万美元。该漏洞允许用户在窃取无限的ETH。近一年来,Coinbase一直面临持续的技术难题。自2017年年中,新用户大量涌入以来,Coinbase的技术能力已经被过度消耗,导致资金延迟和缺失,系统中断以及其他问题。[2018/3/22]
停止Dapp,避免迁移期间数据改变,然后执行actioncleos-uhttps://api.eoslaomao.compushaction合约账户migratexxx'{}'-p合约账户
如果数据较多,且数据是累计增长,可以分区间执行迁移,迁移过程中,可以不停止dapp,等迁移差不多追上旧表了,再暂停dapp,然后等数据全部迁移完.
修正合约中的新表为
struct]xxxinfo{uint64_tid;uint32_ttest;//为测试添加的字段uint16_ttest1;//为测试添加的字段uint32_ttest2;//为测试添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo>xxxinfo_tables;
将旧表修改为
struct]xxxinfo_bak{uint64_tid;uint64_ttest;//为测试添加的字段uint8_ttest1;//为测试添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo"_n,xxxinfo_bak>xxxinfo_bak_tables;
修正前后端调用的table名,重新上线,并运行dapp,建议等运行一段时间,在删除旧表增加清理旧表的action
//.hACTIONclearxxxbak();//.cppvoidclearxxxbak(){xxxinfo_bak_tablesxxxinfo_bak_table(_self,_self.value);autoitr=xxxinfo_bak_table.begin();while(itr!=xxxinfo_bak_table.end()){itr=xxxinfo_bak_table.erase(itr);}}
然后执行actioncleos-upushaction合约账户clearxxxbak'{}'-p合约账户最后再删除合约内旧表及对象就完成了此次合约表升级过程。
以太坊已经成为整个行业中最受欢迎的网络之一。此外,随着其原生代币以太币(ETH)的日益普及,存在大量投资建议和工具来指导您的购买。具体来说,我们看一下以太坊彩虹图并剖析它的含义.
1900/1/1 0:00:002023年6月2日,以太坊区块链浏览器和洞察门户网站Etherscan发布了一项新功能,允许用户使用过滤器优化交易搜索.
1900/1/1 0:00:00目前,由于狗狗币(DOGE)的流行,加密货币市场正在经历模因币的大幅上涨。Coinmeme季节为加密货币世界带来了新的兴奋,ShibaInu(SHIB)和BigEyesCoin(BIG)等山寨币.
1900/1/1 0:00:00Polygon团队正式部署了zkEVM主网供公众使用。以太坊的VitalikButerin在网络上进行了第一笔交易,因为有50多个项目正在排队加入.
1900/1/1 0:00:00一位对模因币情有独钟的加密货币交易员成功地从模因币领域的新竞争者身上获得了惊人的38,675%的利润,可与狗狗币($DOGE)和柴犬($SHIB)等竞争,根据来自区块链.
1900/1/1 0:00:004月25日,BTC的交易价格低于3万美元大关2000美元,并在市场上发出混合信号。BTC在未来几天的走势将取决于多头或空头如何对待这个机会.
1900/1/1 0:00:00