有些時候,由于前期考慮不周,或者后期設計升級,導致合約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}.
智能合約基礎設施公司Neutro完成1000萬美元融資:6月21日消息,Cosmos 生態智能合約基礎設施公司 Neutro 宣布完成 1000 萬美元融資,Binance Labs 和 CoinFund 領投,Neutron 是一個利用 Cosmos 生態系統鏈間安全的跨鏈智能合約平臺,允許智能合約開發人員利用基礎架構和安全性在 Cosmos 生態系統中輕松構建可擴展的 DApp。[2023/6/22 21:53:03]
在合約中增加新的表結構xxxinfo1及其對象,并修正上面問題
struct]xxxinfo1{uint64_tid;uint32_ttest;//為測試添加的字段uint16_ttest1;//為測試添加的字段uint32_ttest2;//為測試添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;
Paradigm聯合創始人:智能合約永久可靠運行,不會面臨任何償付風險:7月1日消息,Paradigm聯合創始人兼管理合伙人Matt Huang發文表示,在加密貨幣去杠桿化進程中,許多中心化實體的償付能力受到質疑;相比之下,像Uniswap這樣的智能合約不會面臨任何償付風險,只要以太坊繼續運行,就會永遠可靠地運行。[2022/7/1 1:44:38]
此時合約內同時存在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++;}}
Standard與Plasm達成合作,Standard將在Plasm上構建智能合約版本:據官方消息,波卡生態的混合式抵押彈性供應穩定幣協議Standard宣布與Plasm達成合作,Standard將在Plasm上構建智能合約版本,Standard將從其平行鏈向Plasm提供預言機信息,以生成虛擬股票和虛擬大宗商品等相關合成資產。[2021/5/25 22:42:05]
停止Dapp,避免遷移期間數據改變,然后執行actioncleos-uhttps://api.eoslaomao.compushaction合約賬戶migratexxx'{}'-p合約賬戶
如果數據較多,且數據是累計增長,可以分區間執行遷移,遷移過程中,可以不停止dapp,等遷移差不多追上舊表了,再暫停dapp,然后等數據全部遷移完.
新一代安全高速主鏈項批露將支持JavaScript開發智能合約:上周獲得李笑來硬幣資本投資的新一代安全高速主鏈項目EON今日進一步披露其特性,表示支持JavaScript開發智能合約。c++開發需要有一定門檻,而且使用上也容易出錯,相比之下,JavaScript就更平易,準確。EON支持javascript意味著很多以太坊的智能合約開發者,web開發者也能參與進來。針對最近區塊鏈公司頻發的各種隱患,漏洞問題,EON表示,因為有前360首席科學家、美國北卡州立大學終身教授蔣旭憲博士領銜的區塊鏈安全團隊PeckShield(派盾科技)保駕護航。[2018/6/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合約賬戶最后再刪除合約內舊表及對象就完成了此次合約表升級過程。
FTX真的會重啟嗎?據《彭博社》報導,風險投資機構TribeCapital正考慮領投2.5億美元,來幫助FTX進行重啟,這個機構是什么來頭? FTX可能被風投注資2.5億新資金.
1900/1/1 0:00:00大家好,這里是鏈客區塊鏈技術問答社區,今天為大家講一講區塊鏈中的hash算法,希望對學習中的小伙伴有所幫助~也希望大家多多關注我們~感謝大家區塊鏈技術是一系列技術的結合,建立新的技術架構.
1900/1/1 0:00:00最近的研究表明,參加2022年FIFA世界杯的球迷應該警惕加密貨幣詐騙。研究人員卡巴斯基表示,由于廣泛的興趣和廣泛的參與度,網絡犯罪分子總是被大型全球體育賽事所吸引.
1900/1/1 0:00:00Billions項目組11月25日,領先的加密貨幣比特幣未能突破16,800美元的水平,并開始跌向38.2%的斐波那契回撤位.
1900/1/1 0:00:00今天給大家講解一下以太坊簡單介紹之賬戶、Gas、區塊GasLimit概念等,這方面會對初學者萌新都有所幫助,畢竟這些是以太坊技術的基本概念.
1900/1/1 0:00:00從2022年下半年到2023年,去美元化概念獲得了巨大關注,在主流媒體上留下了印記。這種關注的激增可歸因于巴西、中國和俄羅斯等金磚國家的共同努力,這些國家正在努力削弱美元的主導地位,阻止其恢復其.
1900/1/1 0:00:00