有些时候,由于前期考虑不周,或者后期设计升级,导致合约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}.
Flare推出治理网站并上线Songbird首个治理投票:12月22日消息,Flare宣布推出治理网站,目前包含审查治理建议、封装和委托代币及投票功能。该网站在2023年Flare改进提案01投票开始之前均为“试运行”阶段。
此外,该网站将进行Flare的先行网Songbird的测试提案 01 (STP.01)的投票。 Songbird提案旨在将每个 FTSO 数据提供商的投票上限从10%降低到2.5%,允许更多的FTSO竞争奖励,并使攻击者更难串通。Flare Time Series Oracle (FTSO) 是一个高度分散的系统,用于为 Flare 上的Dapps 提供持续更新的数据,例如加密货币价格。[2022/12/22 22:01:09]
在合约中增加新的表结构xxxinfo1及其对象,并修正上面问题
Flashbots工程师:所有共识客户端均实施、测试并确认builder-specs集成:9月6日消息,Flashbots工程师Chris Hager在社交媒体发文表示,Flashbots实现了MEV-Boost的另一个里程碑事件,所有共识客户端都实施、测试并确认了builder-specs的集成,现在可将MEV-Boost与任何客户端一起使用。MEV-Boost是由Flashbots构建的提议者-构建者分离(proposer-builderseparation,PBS)的实现,用于以太坊权益证明。MEV-Boost旨在与标准Ethereum Builder API兼容,这意味着它与所有共识和执行客户端兼容。运行MEV-Boost的验证者通过向开放的builder出售区块空间来最大化其质押奖励。[2022/9/6 13:11:45]
struct]xxxinfo1{uint64_tid;uint32_ttest;//为测试添加的字段uint16_ttest1;//为测试添加的字段uint32_ttest2;//为测试添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;
Flare将推出社区驱动的多功能信息中心Flarepedia:金色财经报道,Flare(FLR)的早期支持者将发布一个社区驱动的多功能信息中心,名为Flarepedia。该站点将涵盖Flare技术和营销流程的最重要方面。最初,Flarepedia的海量数据将包括三个部分,即学习、探索和社区。因此,它将对研究人员、开发人员和社区成员有用。这个类似于维基百科的计划将完全由社区驱动,每个Flare(FLR)爱好者都可以为Flarepedia的信息文章做出贡献。[2021/9/4 22:59:07]
此时合约内同时存在xxxinfo1和xxxinfo1两张表.
增加迁移执行的action接口
EDU团队发布关于EduCoin(EDU)智能合约升级的公告声明:EDU团队发布关于EduCoin(EDU)智能合约升级的公告声明:
1、EDU团队内部技术工程师在昨日发现合约漏洞之后,为确保用户资产安全,我们第一时间通知交易所,并暂停了充提业务和交易业务。
2、EDU团队已对异常账户出现前的资产地址进行快照,快照时间为2018年5月23日22:51分。智能合约升级后,将对快照地址做资产映射,快照时的用户资产不会受到任何影响。
3、EDU团队正在全力做智能合约的升级,预计24-96小时升级成功。
4、重要提示:EDU的交易所充提及交易业务将在智能合约升级完成后重新开启,请各位耐心等待。
EDU团队还建议用户在智能合约升级期间,不要进行任何交易行为(场外交易等),以免被投机分子利用,造成财产损失。[2018/5/24]
//.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++;}}
停止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合约账户最后再删除合约内旧表及对象就完成了此次合约表升级过程。
标签:XXXXININFINFOXXX币xinbitokenINFINITYDOGE价格blockchaininfo登不上
界说与原理 1、界说 公认的最早关于区块链的描述性文献是中本聪所撰写的文章《Bitcoin:APeer-toPeerElectronicCachSystem》,但该文献要点在于评论比特币体系.
发起方:以太坊基金会 创始人:V神 发行总量:6250万枚 主网上线时间:2021年第二季度投资机构:以太坊基金会、BitcoinSuisse、ALPHEMYCAPITAL、bitscaleca.
简单来说 一种新的加密货币声称它将解决与通货膨胀有关的问题制造它的公司称它为“平币”这真的是通货膨胀的答案吗?或者它是另一个潜在的Terra? Flatcoin:旨在战胜通货膨胀的项目以与生活成.
账本存储在每个节点中,怎么保证每个节点中的数据共同,或者说怎么避免某些节点的账本被歹意篡改而影响到整个网络的买卖?如果说买卖的验证由各个节点完结,那么怎么在不把暗码走漏给其他节点的前提下.
1、数据:稳定币总市值1年激增超8倍,USDC占比从6.6%升至22%6月7日消息,据TheBlock收集的数据显示,稳定币总市值在过去一年激增超8倍,截至6月6日为1051.7亿美元.
大约三个月前,74种人工智能驱动的数字货币市值超过40亿美元。然而,从那时起,以AI为中心的加密货币市场损失了超过10亿美元的价值.