有些時候,由于前期考慮不周,或者后期設計升級,導致合約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}.
ConsenSys為其智能合約審計服務ConsenSys Diligence推出TURN Token,將于8月15日發售:7月20日消息,以太坊基礎設施開發商ConsenSys宣布為其智能合約審計服務ConsenSys Diligence推出TURN Token,該Token為安全審計的買賣雙方創建了一個新的開放市場,將于北京時間2022年8月15日20:00至8月19日20:00在turnplatform.bid限時發售。
TURN是用于Token化服務的NFT,每個TURN都是與ERC721兼容的Token,代表可以提供40小時的審計時間。TURN Token將直接授予客戶或在鑄幣時出售,可以在需要審計服務的客戶之間進行二次交易,因此可以優化服務參與和調度流程的價格發現。它們每個都代表智能合約審計員的時間片段,并且允許自由市場對其進行定價。[2022/7/20 2:24:59]
在合約中增加新的表結構xxxinfo1及其對象,并修正上面問題
Algorand發布“虛擬機”以提升智能合約性能:金色財經報道,Algorand發布了后端升級,以提高基于Algorand的應用程序的計算能力。新推出的Algorand虛擬機(AVM)將使Algorand智能合約的性能得到提升,使新參與者更容易在鏈上開發程序。Algorand首席產品官Paul Riegel表示,AVM使Algorand智能合約開發“更接近于其他區塊鏈上的開發人員所習慣的思維模型”。[2021/9/30 17:16:16]
struct]xxxinfo1{uint64_tid;uint32_ttest;//為測試添加的字段uint16_ttest1;//為測試添加的字段uint32_ttest2;//為測試添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;
Cardano正在擴大其團隊,為引入智能合約功能做準備:Cardano (ADA)創始人Charles Hoskinson表示,Cardano正在擴大其員工隊伍,為引入智能合約功能做準備。在最近的視頻更新中,Hoskinson稱他的團隊正在招聘關鍵職位,為8月Cardano的Alonzo發布做準備,這次升級將為協議添加智能合約功能。他預測Alonzo的升級將導致Cardano社區的活動達到前所未有的水平。(The Daily Hodl)[2021/5/26 22:46:37]
此時合約內同時存在xxxinfo1和xxxinfo1兩張表.
增加遷移執行的action接口
金色財經現場報道 小犀智能創始人胡鋼:區塊鏈智能合約未來大有可為:金色財經現場報道,在2018區塊鏈企業級服務創新論壇暨權大師A輪融資及戰略升級發布會上,小犀智能創始人胡鋼在現場表示,區塊鏈智能合約未來大有可為,活躍在各種商業場景中,例如健康、電商、房地產等。在這些領域將大幅降低違約、風險及不確定性的情況發生。[2018/4/20]
//.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合約賬戶最后再刪除合約內舊表及對象就完成了此次合約表升級過程。
卡爾達諾價格周一轉綠,追隨其更大的兄弟姐妹——比特幣和以太坊的腳步。智能合約代幣在24小時內上漲了1.85%,吸引了3.8億美元的交易量。其短期技術圖看漲——預測將突破25%.
1900/1/1 0:00:00流行的人工智能工具ChatGPT的潛力似乎是無限的。這個相對較新的項目已經風靡全球,并很快變得重要起來。這個特殊的工具通過預測加密貨幣可能承受的可能漲跌來幫助數字資產市場.
1900/1/1 0:00:00機器學習算法給出了2023年4月30日的ShibaInu價格預測。該預測表明SHIB本周可能不會反彈。SHIB在過去30天內下跌了近5%,并可能在本月底進一步下跌.
1900/1/1 0:00:00狗狗幣是2023年表現最差的加密貨幣之一,因為其看跌趨勢尚未結束。今年,主要的表情包貨幣的價格幾乎沒有上漲,并且每個月后都進一步下滑.
1900/1/1 0:00:00以太坊的四個階段 2015年7月,以太坊創始人VitalikButerin明確將以太坊網絡的開發過程分為四個階段:Frontier、Homestead、Metropolis和Serenity.
1900/1/1 0:00:00過去24小時內銷毀了超過4087萬只柴犬,單個錢包銷毀了1462萬只。ShibaInu見證了燃燒率急劇下降,超過4087萬個SHIB代幣被燒毀.
1900/1/1 0:00:00