在大型、集中式的數(shù)據(jù)中心中存儲(chǔ)數(shù)據(jù),往往存在性能、可用性和可擴(kuò)展性等方面問(wèn)題,同時(shí)也會(huì)帶來(lái)較高的資本或運(yùn)營(yíng)支出。而且,集中存儲(chǔ)數(shù)據(jù)也極易受到復(fù)雜網(wǎng)絡(luò)攻擊。出于這些原因,企業(yè)開始尋求去中心化數(shù)據(jù)存儲(chǔ)的方法——區(qū)塊鏈存儲(chǔ)正是其中一種。
區(qū)塊鏈存儲(chǔ)是一種相對(duì)年輕的技術(shù),但它正漸漸受到更多人的歡迎。而且潛在的企業(yè)用例已經(jīng)開始出現(xiàn),以幫助數(shù)據(jù)中心提高數(shù)據(jù)存儲(chǔ)的安全性和可靠性。在確定這項(xiàng)技術(shù)是否適合你的企業(yè)之前,你需要了解它的工作原理。
區(qū)塊鏈存儲(chǔ)工作原理
區(qū)塊鏈?zhǔn)墙晔只馃岬囊婚T技術(shù),很多人對(duì)它已經(jīng)非常了解了,它是一種分布式賬本技術(shù),用于記錄兩方或多方之間的交易。到現(xiàn)在位置,該技術(shù)主要還是用于加密貨幣,如比特幣,但它在其他領(lǐng)域也正取得進(jìn)展。
區(qū)塊鏈分類帳作為一個(gè)去中心化的數(shù)據(jù)庫(kù),用于保存每個(gè)事務(wù)的詳細(xì)信息。交易按時(shí)間順序添加到分類帳,并存儲(chǔ)為一系列的塊,每個(gè)塊引用前面的塊以形成一個(gè)互連的鏈條。
分類帳分布在多個(gè)節(jié)點(diǎn)上,每個(gè)節(jié)點(diǎn)都保存一個(gè)完整的副本。區(qū)塊鏈自動(dòng)同步和驗(yàn)證所有節(jié)點(diǎn)上的事務(wù)。分類帳對(duì)所有參與成員都是透明的,可以驗(yàn)證,無(wú)需中央機(jī)構(gòu)或第三方驗(yàn)證服務(wù)。
由于其分布式特性,區(qū)塊鏈技術(shù)被評(píng)價(jià)為“天然適合P2P,去中心化存儲(chǔ)”。在這個(gè)場(chǎng)景(數(shù)據(jù)存儲(chǔ))中,區(qū)塊鏈提供了創(chuàng)建一個(gè)地理上分散的存儲(chǔ)資源的邏輯存儲(chǔ)池所需的結(jié)構(gòu),其中,這些存儲(chǔ)池可充當(dāng)區(qū)塊鏈節(jié)點(diǎn)。
下圖概述了區(qū)塊鏈存儲(chǔ)的工作原理。
基于區(qū)塊鏈的存儲(chǔ)系統(tǒng),會(huì)為存儲(chǔ)準(zhǔn)備數(shù)據(jù),然后通過(guò)一個(gè)去中心化的基礎(chǔ)架構(gòu)進(jìn)行分發(fā),這個(gè)過(guò)程可以分為以下六個(gè)步驟:
·創(chuàng)建數(shù)據(jù)分片。存儲(chǔ)系統(tǒng)將數(shù)據(jù)分成更小的片段,這個(gè)過(guò)程稱為分片(Sharding)。這一步將數(shù)據(jù)分解為可管理的塊,這些塊可以分布在多個(gè)節(jié)點(diǎn)上。具體的分片方法取決于數(shù)據(jù)類型和進(jìn)行分片的應(yīng)用程序,對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行分片,與NoSQL數(shù)據(jù)庫(kù)或文件共享上的文件是不同的。
·加密每個(gè)分片。分片之后,存儲(chǔ)系統(tǒng)需要加密本地系統(tǒng)上的每個(gè)數(shù)據(jù)分片。內(nèi)容所有者可以完全控制此過(guò)程。目標(biāo)是確保內(nèi)容所有者以外的任何人都無(wú)法查看/訪問(wèn)分片中的數(shù)據(jù),無(wú)論數(shù)據(jù)位于何處、該數(shù)據(jù)是靜態(tài)還是動(dòng)態(tài)。
·為每個(gè)分片生成哈希(Hash)。區(qū)塊鏈存儲(chǔ)系統(tǒng)根據(jù)分片的數(shù)據(jù)或加密密鑰生成唯一的哈希——即固定長(zhǎng)度的加密輸出字符串。哈希將添加到分類帳和分片元數(shù)據(jù),以便將事務(wù)鏈接到存儲(chǔ)的分片。生成哈希的確切方法因系統(tǒng)而異。
·復(fù)制每個(gè)分片。存儲(chǔ)系統(tǒng)會(huì)復(fù)制每個(gè)分片,因此有足夠的冗余副本,可確保可用性和性能,并防止性能下降和數(shù)據(jù)丟失。由內(nèi)容所有者來(lái)決定每個(gè)分片的副本數(shù)量以及這些分片所在的位置。此過(guò)程中,內(nèi)容所有者應(yīng)該為需要維護(hù)的最小副本數(shù)建立閾值,以確保不會(huì)丟失數(shù)據(jù)。
·分發(fā)復(fù)制的分片。P2P網(wǎng)絡(luò)將復(fù)制的分片分發(fā)到地理上分散的存儲(chǔ)節(jié)點(diǎn),無(wú)論是區(qū)域還是全局。多個(gè)組織或個(gè)人(有時(shí)也稱作farmer)擁有存儲(chǔ)節(jié)點(diǎn),通過(guò)租用額外的存儲(chǔ)空間可換取某種類型的補(bǔ)償,通常是加密貨幣。沒(méi)有一個(gè)實(shí)體能夠擁有所有存儲(chǔ)資源,或者控制存儲(chǔ)基礎(chǔ)架構(gòu)。只有內(nèi)容所有者才能完全訪問(wèn)其所有數(shù)據(jù),無(wú)論這些節(jié)點(diǎn)位于何處。
·將交易記錄到分類帳。存儲(chǔ)系統(tǒng)記錄區(qū)塊鏈分類帳中的所有事務(wù),并在所有節(jié)點(diǎn)之間同步該信息。分類帳存儲(chǔ)與事務(wù)相關(guān)的詳細(xì)信息,例如分片位置,分片哈希和租賃成本等等。由于分類帳基于區(qū)塊鏈技術(shù),因此它具有透明性、可驗(yàn)證性、可追溯性以及防篡改性。
雖然本文列出了六個(gè)步驟,但區(qū)塊鏈集成是一個(gè)持續(xù)不斷的過(guò)程,不局限于這幾步,確切的方法取決于具體存儲(chǔ)系統(tǒng)。例如,當(dāng)存儲(chǔ)過(guò)程首次啟用時(shí),可能最初會(huì)在區(qū)塊鏈分類帳中記錄事務(wù)。然后,會(huì)使用信息(例如唯一哈希或特定于節(jié)點(diǎn)的詳細(xì)信息)來(lái)更新事務(wù),因?yàn)樗鼈円呀?jīng)是可用的。接著,在參與節(jié)點(diǎn)對(duì)事務(wù)進(jìn)行了驗(yàn)證之后,系統(tǒng)會(huì)將事務(wù)標(biāo)記為分類帳中的最終事務(wù)并進(jìn)行鎖定,以防止篡改。
所以,以上描述的六個(gè)步驟,只是對(duì)區(qū)塊鏈存儲(chǔ)過(guò)程的概念化總結(jié)。具體方法取決于特定存儲(chǔ)系統(tǒng)的實(shí)際需求,即存儲(chǔ)系統(tǒng)如何針對(duì)給定的用例進(jìn)行實(shí)施,以及如何管理數(shù)據(jù)存儲(chǔ)。