宇宙链 宇宙链
Ctrl+D收藏宇宙链

智能合约之合约数据表字段升级

作者:

时间:1900/1/1 0:00:00

有些时候,由于前期考虑不周,或者后期设计升级,导致合约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}.

智能合约平台Fantom启动Uniswap克隆版fUNI.Uniswap:基于DAG的智能合约平台Fantom宣布启动fUNI.Uniswap,fUNI是部署在Fantom上的Uniswap克隆项目,目前已发布应用版和钱包集成版。公告称,在Fantom上启动Uniswap将拥有较低的费用和更快速的交易:费用低于一美分,确认交易的速度在2秒内。Uniswap的所有其他特征保持不变。用户可在fUNI上交易fUSD和wFTM,开发人员可以像在以太坊上一样部署代币。[2020/10/16]

在合约中增加新的表结构xxxinfo1及其对象,并修正上面问题

struct]xxxinfo1{uint64_tid;uint32_ttest;//为测试添加的字段uint16_ttest1;//为测试添加的字段uint32_ttest2;//为测试添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;

以太坊智能合约再曝安全漏洞 攻击者可任意窃取受影响合约地址的数字资产:区块链安全公司PeckShield近日发现一种新型的智能合约安全漏洞evilReflex,攻击者可通过公开的接口窃取合约地址账户中存放的Token。据PeckShield研究人员透露,目前已发现有数十个Token受该漏洞影响,其中部分Token已在某些顶级交易所上线并交易。[2018/6/24]

此时合约内同时存在xxxinfo1和xxxinfo1两张表.

增加迁移执行的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++;}}

ADA发布智能合约测试网 涨幅近10%:Cardano(ADA)官方发布消息,IOHK已经发布ADA第一个智能合约测试网——KEVM 测试网。受此利好消息影响,ADA自今日10点起开始大幅上涨,市场普跌时依然保持涨幅势头,行情显示,ADA全球均价0.199美元,涨幅9.43%。[2018/5/30]

停止Dapp,避免迁移期间数据改变,然后执行actioncleos-uhttps://api.eoslaomao.compushaction合约账户migratexxx'{}'-p合约账户

如果数据较多,且数据是累计增长,可以分区间执行迁移,迁移过程中,可以不停止dapp,等迁移差不多追上旧表了,再暂停dapp,然后等数据全部迁移完.

金色财经现场报道Emotiq首席执行官Joel Reymont:智能合约是用户与区块链的接口:金色财经前方记者实时报道,第二届全球金融科技与区块链中国峰会于4月12日在上海召开,CEmotiq首席执行官Joel Reymont在峰会上表示,智能合约语言其实就是一个接口,也就是你和区块链的接口。但是现实存在的问题是,目前智能合约的语言非常复杂,编程起来也比较困难,而且还存在很多漏洞,黑客可以利用这些漏洞来偷取加密货币。而我们要做什么呢?我们会不会有更加专业化,或者去培育更加专业化的程序员,把这个事情做对。我觉得这个可能不太现实。我们想要区块链能够让大家共享的,但是我们却给区块链接入创造了一些障碍,但是我们还是有一丝希望存在,这个一丝希望叫做静态的分析。[2018/4/12]

修正合约中的新表为

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合约账户最后再删除合约内旧表及对象就完成了此次合约表升级过程。

标签:ACTIONACTIONACT币ACT价格ION币是什么币ACTION币是什么币

欧易交易所热门资讯
区块链技术的五个基本特点

大家好,这里是链客区块链技术问答社区。链客,专为开发者而生,有问必答! 区块链技术的基本特点 区块链技术近期大热.

1900/1/1 0:00:00
以太坊技术知识简单介绍

以太坊并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球已有200多个以太坊应用诞生.

1900/1/1 0:00:00
Nansen:详解公链 Aptos 技术特性与生态现状

概述Overview Aptos是由MoShaik和AveryChing创立的新的第1层区块链,他们都是参与Diem项目的前Meta开发人员.

1900/1/1 0:00:00
拜占庭容错系统是什么意思?

区块链网络的记账共识和拜占庭将军问题是相似的。参与共识记账的每一个记账节点相当于将军,节点之间的消息传递相当于信使,某些节点可能由于各种原因而产生错误的信息并传达给其他节点.

1900/1/1 0:00:00
以太坊的ETH和Ripple的XRP都处于关键的十字路口!这是期望值!

概括 以太坊和瑞波币正在接近关键水平阻力位。水平阻力是价格难以通过且可能存在重大活动的价格水平。ETH的水平阻力位在1,900-920美元,XRP的水平阻力位在0.52-0.53美元.

1900/1/1 0:00:00
尽管 Hedera 的网络升级,为什么 HBAR 继续面临高温

随着HashPack钱包数量的激增,HBAR投资者的数量也在增加。MFI和CMF是看涨的,但其余的表明持续下降趋势。Hedera将于3月31日将Hedera主网升级到v0.35.2.

1900/1/1 0:00:00