前言
區塊鏈的全復制、擴展性等問題,使得業務向鏈上遷移會考慮采用兩層設計,有基于區塊鏈的合約層和鏈下拓展層,鏈下層承擔擴展鏈上能力。在兩層系統中,業務的存證或者協調數據在鏈上,鏈下拓展層會保存完整數據內容,并參與業務計算。
隨著業務的持續,鏈下節點的數據會逐漸累積,越來越大,數據的增長速度甚至會超過存儲介質容量增長的速度,而不得不為節點提供更大的高性能磁盤,當數據增長突破容量限定后會影響系統性能與業務持續性;鏈上合約層,當狀態數據數據累積到一定數據量級會導致系統吞吐量下降、鏈上數據查詢變慢,服務質量下降。
另一方面,雙層系統無法和一般的數據存儲系統(MySQL存儲系統)一樣進行“select-insert-delete”式的歸檔。合約數據涉及多個業務參與方,鏈上數據和鏈下的錨定、關聯關系不能被破壞等約束。
“鏈上偵探”ZachXBT聲稱遭遇勒索威脅:金色財經報道,據“鏈上偵探”ZachXBT在社交媒體發文稱自己遭到勒索威脅,一些隨機的推特賬戶試圖向其發起威脅并試圖勒索10萬美元。[2023/6/20 21:49:02]
為解決這些問題,我們對兩層系統的數據歸檔進行了一定的實踐,當合約層以及拓展層數據停止改變或不被頻繁使用時,對其進行遷移,減少合約狀態數據、讓出拓展層節點主存儲空間,提升系統的性能和服務質量。
什么是數據歸檔?
-----數據歸檔過程和目標
為了詳述數據歸檔來龍去脈,我們需要了解幾個簡單的概念,首先,需要了解備份和歸檔的區別:
備份:存儲在非易失性存儲介質上的數據集合,在原始數據丟失、損壞或不可用時,可以從備份系統訪問或從備份數據中恢復,也稱為副本。備份同時保護了所有生產系統的活躍的和非活躍的數據。我們通常說的備份,類似“復制“操作。歸檔:將不再活躍但必須保留的數據移動到另一個存儲系統,以便釋放節點主存儲,提高系統性能。歸檔的數據是生產數據的子集,一般,將歸檔數據轉存到專用系統,歸檔類似”剪切“操作。在兩層系統語境下,歸檔意味著將合約的狀態數據以及數據錨定的鏈下系統數據作為一個整體進行歸檔。
The Block研究總監:今年穩定幣鏈上總交易量將超過1萬億美元:The Block研究總監Larry Cermak發推稱,今天或明天的某個時刻,今年穩定幣鏈上的總交易量將超過1萬億美元。今年穩定幣經歷了絕對瘋狂的增長。其中73%的交易量來自Tether,15%來自USDC,7%來自Dai。[2020/12/22 16:09:07]
對數據歸檔,我們要達到如下目標:
1)獨立的數據歸檔支持合約,用于索引鏈上的數據,包括3方面內容:數據指紋、更新時間、關聯方;
2)一個歸檔模塊以及獨立歸檔服務:使用統一的架構,將數據遷移到一致的位置;
3)歸檔后的數據需要進行統一管理和一致的訪問;減少運維歸檔數據所需的成本,同時需要保護歸檔數據的安全性;
4)歸檔后的數據具有索引和搜索功能,能更有效、快捷地對歸檔的數據訪問并利用;
港股開盤:歐科云鏈上漲1.69%,火幣科技下跌1.26%:金色財經報道,港股開盤,香港恒生指數開盤上漲127.45點,漲幅0.48%,報26419.13點;歐科集團旗下歐科云鏈(01499.HK)報0.240點,開盤上漲1.69%;火幣科技(01611.HK)報3.92點,下跌1.26%。[2020/3/3]
5)相關歸檔的恢復:可以將某次歸檔恢復到生產環境。
一般的數據歸檔的過程:select-insert-delete,創建一個新的數據庫-歸檔庫,然后在歸檔庫創建與生產庫相同的表;不斷查詢生產庫數據記錄,同步復制到歸檔庫;生產庫刪除已經復制的數據記錄。雖然數據歸檔過程非常簡單,但是設計數據歸檔的方案,我們必須想清楚以下幾個問題?
歸檔前:那些數據可以歸檔?數據適合歸檔嗎?歸檔庫如何選型?歸檔執行階段:數據歸檔過程需要不斷的讀寫生產庫,這個過程將會大量使用的網絡、IO,那為了防止對線上業務造成壓力,數據歸檔一般只在業務低峰期執行。歸檔后:數據冪等被破壞,數據歸檔導致生成數據缺失,會對業務造成影響。針對歸檔的過程和目標。綜上,我們將提出設計和實現契合自身架構特點的歸檔方案。
動態 | XRP鏈上現價值約4886.2萬美元大額轉賬:據Whale Alert數據顯示,北京時間1月1日6:32,255684110枚XRP(價值約4886.2萬美元)從Ripple錢包(rBg2FuZT開頭地址)轉入Funding Wallet 1(rU1bPM4q2開頭地址)[2020/1/1]
歸檔方案實踐
趣鏈科技自研的區塊鏈隱私計算平臺BitXMesh,將區塊鏈與隱私計算技術深度融合,支持鏈上鏈下協同的數據共享和隱私計算。
BitXMesh是一個兩層架構系統。包括區塊鏈合約層,鏈上部署有數據共享合約、聯邦計算協調合約等,鏈下拓展層由BitXMesh節點組成并提供數據共享、聯邦計算等能力。從數據的維度看,整個系統由合約數據及合約數據錨定、節點內的數據以及支撐節點能力、逐漸累積的業務功能數據組成。歸檔數據的時候需要考慮:鏈上數據和節點本地數據,數據之間的錨定關系,以及本地數據的關聯關系。同時,數據類型也是需要考慮的,節點內有文件、K/V類型的數據,這些數據歸檔需要存放在不同的歸檔庫中。
LCH 萊特幣現金主鏈上線:萊特幣現金LCH主鏈已經上線,其開源代碼已在Github發布(https://github.com/litecoincash/LitecoinCash)。LCH當前挖礦難度為14753,出塊時間為2.5分鐘/塊。8M的大區塊可使萊特幣現金的交易速度提升。其難度調整(DAA),抗重放(Anti replay)保護等技術可保證主鏈穩定。[2018/1/20]
BitXMesh數據歸檔組件包含:內部的歸檔模塊(Archivermodule)、鏈上數據歸檔支持合約、存儲對接組件、歸檔庫(存儲歸檔數據)。其中,鏈上數據歸檔支持合約是為了兩層系統協同歸檔而構建的合約,合約主要功能是進行鏈上數據的索引以及按時間進行引用計算,便于定位鏈上數據。整個歸檔模塊組件及其構成,如下圖。
針對K/V類型的數據,選擇BadgerDB作為歸檔庫,存放BitXMesh歸檔的K/V數據;對文件數據,使用IPFS作為歸檔存儲,同時文件的元信息存儲在BadgerDB歸檔庫;整個歸檔數據項的標識ID都會記錄在歸檔摘要文件中,歸檔摘要文件記錄了整個歸檔的元信息,該文件也可以提供給基于BitXMesh開發的業務系統使用,將業務系統的數據也進行歸檔。整個歸檔過程如下:
1)首先,歸檔庫初始化。指定歸檔庫存儲路徑,會在該目錄下創建K/VBadgerDB庫以及存儲大文件的ipfs,這兩個庫的創建尤其關鍵,歸檔的數據存儲于兩個庫中,后續可開發應用對歸檔的數據進行管理。2)其次,執行歸檔。目前,按“時間區間”進行歸檔,分為兩個階段:鏈上數據及與鏈上錨定的節點數據的歸檔、鏈下節點數據歸檔。
鏈上數據及與鏈上錨定的節點數據的歸檔:該步驟需要歸檔支持合約的支持,歸檔支持合約主要存儲鏈上數據的標識信息以及數據存儲時間。當歸檔時,先查詢該合約得到需要歸檔的數據列表,根據這個數據列表,去歸檔節點與其錨定的數據。整個過程包括查詢-寫入-刪除,查詢鏈上數據和鏈下數據,將查詢得到的數據信息寫入到歸檔庫,一旦寫入成功,將摘要寫入到歸檔摘要文件,最后刪除數據。鏈下節點數據歸檔:該步驟歸檔節點的業務數據,落到時間區間的數據即可執行查詢-寫入-刪除操作。一旦碰到文件數據,需要查詢元信息,寫入K/V歸檔庫,再取文件block寫入到ipfs歸檔系統。3)最后,資源回收和落盤操作。上面兩步已經將符合時間范圍的數據進行歸檔,之后需要將歸檔模塊訪問節點數據的連接斷開,歸檔庫也需要關閉數據訪問連接。歸檔摘要文件落到磁盤。
在進行了一次歸檔操作后,歸檔庫中的數據可以通過歸檔服務進行訪問,類似業務系統的做法,將歸檔庫作為backend數據存儲,通過HTTP接口訪問這些歸檔的數據。
總結
數據歸檔是針對大量數據累積的系統,對數據進行有計劃的遷移,當數據停止改變或不被頻繁使用時,通過數據歸檔把它們轉存到別的地方,讓出存儲空間,提升系統的性能。本文以BitXMesh數據歸檔模塊為例,對鏈上-鏈下兩層架構系統的數據歸檔進行實踐,將歸檔融入到系統功能,完成了歸檔使用統一的架構,將數據遷移到一致的位置,歸檔后的數據需要進行,統一管理和一致的訪問目標。
截至今日最新數據統計,以太坊擴容網絡Arbitrum作為以太坊上TVL最大的二層網絡,鎖倉價值達到2.74億美元.
1900/1/1 0:00:00萬向區塊鏈蜂巢研習社重磅推出“構建更好的Web3”系列活動,邀請Web3及相關科技領域的資深從業者、研究愛好者,通過4期討論探討Web3的宏偉版圖和潛力賽道.
1900/1/1 0:00:0012月26日-27日,2021CCF中國區塊鏈技術大會在海南海口舉辦,本次會議由中國計算機學會主辦,中國計算機學會區塊鏈專業委員會、海南大學承辦,中科國鼎數據科學研究院協辦.
1900/1/1 0:00:00原文標題:《IsETH2.0thereal"ETHKiller"?》原文作者:DavidDuong.
1900/1/1 0:00:00原文標題:《定義web3堆棧》原文作者:NaderDabit原文編譯:TheGraph社區成員想在web3上進行構建?NaderDabit在一份介紹性指南中指出了web3技術堆棧的構建模塊在「w.
1900/1/1 0:00:00據Cointelegraph消息,1月19日,區塊鏈分析公司Chainalysis發布加密惡意軟件報告.
1900/1/1 0:00:00