有些時候,由于前期考慮不周,或者后期設計升級,導致合約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}.
三亞:以數字人民幣智能合約消費券模式發放2000萬元汽車消費券:金色財經報道,三亞市將于10月27日以數字人民幣智能合約消費券的模式發放2000萬元汽車消費券刺激新車消費市場,同時,此次消費券投放的合作方建設銀行三亞分行將同期配資300余萬元開展數字人民幣惠客活動。(人民網)[2022/10/26 16:39:33]
在合約中增加新的表結構xxxinfo1及其對象,并修正上面問題
struct]xxxinfo1{uint64_tid;uint32_ttest;//為測試添加的字段uint16_ttest1;//為測試添加的字段uint32_ttest2;//為測試添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;
UENC智能合約正式上線測試網:據官方消息,UENC智能合約的工具及測試客戶端代碼已上傳至github,目前智能合約可進行公開測試。
UENC是一個高效節能TPS可無限拓展的去中心化公有鏈系統,通過DPOW的共識算法,實現了CPU低能耗的工作模式,每一個節點在網絡中具備完整的節點職能,在保障安全的前提下降低了算法的復雜性,實現了鏈上快速,高并發的支付交易,目前任何可用的計算機都可以參與網絡的基礎建設,UENC所支持的多語言智能合約WASM,可以讓開發者更輕松的進入DAPP的開發,UENC將集成跨鏈技術讓高能耗的加密資產通過UENC網絡進行更低成本的鏈上快速流通,同時也更易于讓企業或者個人使用加密通證在智能合約下完成DAO的發展。[2022/3/14 13:55:33]
此時合約內同時存在xxxinfo1和xxxinfo1兩張表.
數據:鎖定在智能合約中的MKR供應占比已創下16個月新高:Glassnode數據顯示,鎖定在智能合約中的MKR供應占比已創下16個月以來的新高,目前為58.287%.[2020/9/21]
增加遷移執行的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++;}}
聲音 | BM:區塊鏈的意義在于誠實 正直和智能合約的客觀理性:據 IMEOS 報道,BM 剛剛在 URI 電報群發表了幾段消息,他表示,URI 是志愿社區的和平條約,每個社區都有它自己極力捍衛的價值觀。那些不以這些價值觀并破壞和平條約的人將沒有資格獲得 URI。
如果人們不明白其道德準則,任何和平條約都不成立。不接受和平條約準則的人會拿著不勞而獲的錢去資助戰爭或者其他東西。我們需要記載和明確最低可行道德準則,不容質疑的,落地實行的。
區塊鏈的意義在于誠實,正直和智能合約的客觀理性。讓人們信守他們的加密諾言和明白客觀歷史。[2018/9/29]
停止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合約賬戶最后再刪除合約內舊表及對象就完成了此次合約表升級過程。
在信息化的網絡北京下,會有與不熟悉的人進行價值交換,那么在這個過程中怎么防止不受到惡意欺騙,來做出正確的決策?區塊鏈技術正好解決這個問題,它是一種無需信任的單個節點,創造共識網絡的方法.
1900/1/1 0:00:00最近,比特幣又走弱了。各種“區塊鏈騙局”的聲音不絕于耳。很多人可能開始思考一個問題——比特幣到底怎么了?它能夠和主流金融能和諧共處嗎?首先,從歷史的角度來看看比特幣能否融入主流金融.
1900/1/1 0:00:00概括 交易所的ETH供應量已降至歷史低點。Shapeella之后質押的ETH數量達到了2300萬的峰值。如果能夠克服2,000美元的阻力位,則可以瞄準3,000美元.
1900/1/1 0:00:00美國企業對于加密市場的押注盡管加密行業現狀深陷在泥潭之中,但美國企業仍在押注它可能是未來的龍頭。根據《華爾街日報》的報道,在線財務顧問Betterment本周為其客戶推出了主題加密投資組合.
1900/1/1 0:00:00比特幣最近經歷了清算的大幅飆升,在價格飆升至29,000美元以上后達到約1.3億美元。加密貨幣市場上的清算發生在交易者平倉時,通常是由于觸發追加保證金或止損單.
1900/1/1 0:00:00ShibaInu社區繼續希望SHIB能夠在不久的將來出現顯著的價格反彈,達到某些高價位。在撰寫本文時,去中心化meme代幣的價格中仍然存在許多零,社區成員一直在關注0.01美元的價格點.
1900/1/1 0:00:00