有些時候,由于前期考慮不周,或者后期設計升級,導致合約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}.
數據:目前有超過3000個智能合約等待在Cardano上部署:9月19日消息,據實時數據顯示,目前有超過3000個智能合約等待在Cardano上部署。這些智能合約被鎖定在一個時間鎖定合約中。開發者暫時無法訪問,因為它們目前處于鎖定狀態,只待獲得訪問權限。(Zycrypto)[2021/9/20 23:37:27]
在合約中增加新的表結構xxxinfo1及其對象,并修正上面問題
struct]xxxinfo1{uint64_tid;uint32_ttest;//為測試添加的字段uint16_ttest1;//為測試添加的字段uint32_ttest2;//為測試添加的字段autoprimary_key()const{returnid;}};typedefeosio::multi_index<"xxxinfo1"_n,xxxinfo1>xxxinfo1_tables;
靈蹤安全已審計ChainSwap項目智能合約 暫未發現風險:據官方消息,靈蹤安全近期審計了ChainSwap項目的智能合約,所審計的TOKEN,Factory和LBP合約為該項目通證發行、跨鏈映射通證發行以及Uniswap上發布通證交易的LBP機制。經靈蹤安全審計(細節請參看審計報告)暫未發現風險。[2021/4/25 20:55:42]
此時合約內同時存在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++;}}
法國巴黎銀行將利用DAML智能合約開發交易結算應用:法國巴黎銀行(BNP Paribas) 9月15日宣布,該公司的證券部門已與Digital Asset合作,利用基于DAML的智能合約開發一系列實時交易和結算應用。公告指出,除了連接各種基于區塊鏈的平臺,新的DAML應用程序還將提供給尚未集成分布式賬本技術市場的客戶。(Cointelegraph)[2020/9/15]
停止Dapp,避免遷移期間數據改變,然后執行actioncleos-uhttps://api.eoslaomao.compushaction合約賬戶migratexxx'{}'-p合約賬戶
如果數據較多,且數據是累計增長,可以分區間執行遷移,遷移過程中,可以不停止dapp,等遷移差不多追上舊表了,再暫停dapp,然后等數據全部遷移完.
聲音 | Blockstream CSO:microcript有望釋放比特幣智能合約的潛力:據AMBcrypto 10月5日消息,最近,Blockstream首席戰略官Samson Mow談論了一種基于比特幣腳本的語言,即minicript,稱它可以讓在比特幣區塊鏈上編寫智能合同變得更容易。根據Mow的說法,Bitcoin Script用于在特定條件下進行交易,而Miniscript使得進行此類交易變得更加容易。他談到了Miniscript如何刪除沒有人使用的功能,同時啟用雙重簽名以使交易更加安全。[2019/10/6]
修正合約中的新表為
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合約賬戶最后再刪除合約內舊表及對象就完成了此次合約表升級過程。
SHIBburn推特網站報道稱,燒毀率下降了近90%。上周共有26筆交易銷毀了1,178,830,489個SHIB代幣.
1900/1/1 0:00:00美國著名家香農·布雷(ShannonBray)最近在其經過驗證的推特賬戶上公開宣布大力支持柴犬(SHIB).
1900/1/1 0:00:00最近推出的以太坊合并導致大型ETH投資者的累積持有量下降。Santiment是一家領先的加密貨幣鏈上分析平臺,跟蹤前2,000種加密貨幣,它指出,自Merge升級上線以來,以太坊鯨魚在資產類別中.
1900/1/1 0:00:00NFT市場代幣正在獲得市場的關注,而Blur最近的空投可能會延續這一趨勢。 1月份不可替代代幣(NFT)的累計交易量呈上升趨勢,最近DelphiDigital報告的數據顯示,每月交易量達到10億.
1900/1/1 0:00:00“我的背景是經濟和金融。所以我對我所說的話很有信心:這是第一個全球私人的,這意味著沒有政府監督,基于數字規則的貨幣體系。當我這樣解釋時,我要求每個人都聽這些詞,每個詞都非常重要.
1900/1/1 0:00:00大家上午好,這里是鏈客區塊鏈技術問答社區,以下是我們通過社區成員提出精彩的問和答總結出來的實戰經驗,希望大家可以關注以下.
1900/1/1 0:00:00