有些時候,由于前期考慮不周,或者后期設計升級,導致合約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}.
OpenSea完成智能合約升級,網站已恢復正常:2月26日消息,OpenSea發推稱,其智能合約升級已完成,目前網站已恢復正常運行。舊合約上(2月18日前)所有未遷移的掛單現已過期,用戶可以免費重新上架。
據此前報道,OpenSea于昨日進入合約遷移的最后階段,可能會在幾小時內無法使用網站上的一些功能和體驗。合約遷移期間,用戶可能看不到已遷移的項目信息,地板價也可能會暫時發生變化。[2022/2/26 10:16:59]
在合約中增加新的表結構xxxinfo1及其對象,并修正上面問題
struct]xxxinfo1{uint64_tid;uint32_ttest;//為測試添加的字段uint16_ttest1;//為測試添加的字段uint32_ttest2;//為測試添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;
Aave 推出基于 Polygon 的基于智能合約的社交媒體平臺 Web3:金色財經報道,去中心化金融(defi)借貸平臺 Aave 透露了一個名為 Lens Protocol 的 Web3 社交媒體平臺的推出。據該團隊稱,Lens 是使用 Polygon 區塊鏈構建的“基于 Web3、基于智能合約的社交圖譜”。[2022/2/10 9:41:31]
此時合約內同時存在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++;}}
小蜜蜂Bee智能合約已通過知道創宇安全審計:據官網消息,知道創宇近日已完成小蜜蜂Bee智能合約項目的安全審計服務。
據介紹,小蜜蜂Bee是基于波場底層打造的第二代DeFi協議。旨在改善上一代DeFi協議在交易速度、成本等方面,面臨的一些固有挑戰,突破較大規模 DeFi 應用的瓶頸。
小蜜蜂Bee將于2020年10月15日晚20:00開啟創世挖礦,目前小蜜蜂Bee已上線bitkeep錢包defi專欄推薦位,并已在Justswap開啟流通。小蜜蜂Bee無ICO、零預挖且零私募,社區高度自治。
?合約地址:TNUXHrnHFJ89cgT8kCLmxYCVj3PeEqyJ4C[2020/10/13]
停止Dapp,避免遷移期間數據改變,然后執行actioncleos-uhttps://api.eoslaomao.compushaction合約賬戶migratexxx'{}'-p合約賬戶
分析 | 安全公司:25%的智能合約項目存在嚴重bug:據bitcoin.com報道,安全公司Hosho發現,智能合約的bug普遍存在。經過Hosho審計的智能合約項目籌集資金總額高達10億美元,這些項目中有25%被發現存在嚴重bug,約有60%至少存在一個安全問題。[2018/8/30]
如果數據較多,且數據是累計增長,可以分區間執行遷移,遷移過程中,可以不停止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合約賬戶最后再刪除合約內舊表及對象就完成了此次合約表升級過程。
過去的幾周里,越來越多的分析師談到了狗狗幣。埃隆·馬斯克(ElonMusk)擔任Twitter負責人,這激發了人們的興趣。提醒一下,億萬富翁被社區成員視為該市場的主要制造者.
1900/1/1 0:00:00根據火幣比特幣交易平臺行情顯示,比特幣于3月13日上午10點暴跌到了3800美元。比特幣自今年初以來自底部6450美元一路漲至10500美元附近,漲幅達到61%.
1900/1/1 0:00:00簡單來說 一種新的加密貨幣聲稱它將解決與通貨膨脹有關的問題制造它的公司稱它為“平幣”這真的是通貨膨脹的答案嗎?或者它是另一個潛在的Terra? Flatcoin:旨在戰勝通貨膨脹的項目以與生活成.
1900/1/1 0:00:00幾個月來,比特幣的價格一直處于18,000美元至25,000美元之間的盤整區間內,并且以極低的波動性橫盤整理.
1900/1/1 0:00:00合并升級似乎正在推動更多用戶使用以太坊網絡。持有至少10個硬幣的ETH地址數量激增。隨著越來越多的地址持有10個以上的代幣,機構和散戶投資者正在推動ETH的上漲.
1900/1/1 0:00:00以太坊價格出現大量資金流入,一次突破1220美元和1275美元的阻力位。因此,這個回收的水平提供了一個長期的進入機會,并幫助買家推高ETH價格.
1900/1/1 0:00:00