WEEX 唯客博客, 上一篇文章我們詳細解釋了CESS 在共識機制和區塊鏈層的設計上的思路:通過隨機選取輪值共識節點機制(R²S)來保證共識達成的公平與高效,同時避免存儲礦工的話語權過大。區塊鏈本身除了交易、證明、合約等基本信息外,還包含了用戶上傳內容的元數據,是少有實現了元數據鏈上記錄的存儲公鏈。這些要歸功於CESS高效的鏈上事務處理效率,使得在鏈上處理數據這種更去中心化的方式得以成為現實。 本篇文章將重點闡述 CESS 在存儲和內容分發層上的設計,以及CESS獨特的多副本可恢復存儲證明機制。與存儲挖礦相關的內容我們將在後續單獨向大家展示包含了共識、存儲以及內容分發的挖礦機制與分發規則。 1、存儲網路 CESS目前將存儲層與內容分發層並為一層網路,但我們還是分開來看二者的功能。 作為去中心化存儲網路最為重要的功能的載體,存儲網路是整個CESS網路的「心臟」。CESS的存儲網路由存儲礦工組成,解決當前去中心化存儲無法提供彈性可伸縮的雲存儲能力的問題,CESS存儲網路通過虛擬化技術將存儲資源「池化」,對頂層應用或外部應用提供統一的、按需使用存儲方式,屏蔽底層硬體差異化帶來的不穩定問題。礦工通過一系列鏈上證明包括有效存儲空間、存儲數據量、流量貢獻量、及運行性能等指標來向整個CESS網路提供有效的存儲空間及可用存儲空間,CESS並非通過撮合需求方和存儲服務提供方來提供點對點的交易,而是整合存儲礦工提供的存儲資源,並通過演算法將需求按照其所需的容量、帶寬等分配給相應的存儲服務提供方(即虛擬化技術,指將礦工提供的具體的服務抽象為「虛擬」存儲服務),即當用戶有數據存儲的需求時,並為應用提供存儲服務。 在存儲資源的利用上,CESS通過「池化」技術實現了資源利用效率的最大化。所謂「池化」,就是將所有的存儲資源作為一個整體的存儲資源池而非個體礦工進行看待,用戶上傳的數據將會隨機分配給滿足存儲條件的存儲礦工。 具體來說,當用戶上傳數據后,共識節點會首先將數據進行加密(採用可信執行環境進行加密)、分片和冗餘等預處理(去中心化代理重加密機制),處理完畢的數據將依據用戶對數據的存儲要求(例如存儲時間等)挑選滿足條件的礦工進行存儲。最重要的是,CESS並非選擇一個或幾個礦工完成存儲任務,而是將切片后的數據段隨機分發給滿足要求的礦工。如此便避免了Filecoin點對點的存儲模式中可能出現的大戶壟斷的情況。 另一方面,這樣的模式還可以實現存儲資源的利用率最大化。在現有的存儲網路中,當接收了較大規模的數據存儲任務(例如超過5TB的數據量),可能對某些家庭礦工而言就無法實現整體的存儲,也就失去了競爭的能力。這一點在現有的大部分存儲網路中都沒有得到很好的解決,當存儲網路發展到一定程度,Filecoin和Arweave等都會不可避免的走向存儲的中心化。舉例來說,當網路中存在礦工A(3TB存儲容量)和礦工B(1TB存儲容量)時,對於現有的存儲網路而言,2TB的數據只能由礦工A存儲,而CESS可以實現A和B各存儲1TB,從而實現最大的利用率。 除了利用率的提高,該模式還降低了存儲設施的硬體門檻。一方面是由於礦工只需要執行存儲的任務而無需進行例如「接單」和運行節點這樣複雜和專業的事宜;另一方面,也是由於礦工會隨機接收數據段,並不取決於礦工本身的規模有多大。 如此而言,CESS的存儲層真正實現了存儲「去中心化」和使用效率最大化的願景,真正將閑置資源利用起來,而並非完全為了獲取收益而額外增加存儲資源。 2、內容分發網路 CESS中的內容分發網路事實上起到了傳統的雲中CDN的功能。 對於去中心化的存儲網路,最大的問題之一併非存儲本身,而是「數據的上傳」。對於礦工尤其是國內的礦工而言,下載用戶需要存儲的數據不難,但當用戶需要使用時上傳所需要的網路成本卻比較高。這就導致很多礦工在存儲數據后雖然通過存儲證明保證了數據的續存但不願意將數據上傳給用戶,導致了網路實際上的不可用。 不僅是去中心化的存儲網路,即使是對於傳統的雲來說,也無法承受用戶直接從雲數據中心直接調取數據而產生的高瞬時併發與流量,這也是CDN存在的必要性之一。 CESS在內容分發網路中設計了緩存以及檢索礦工來幫助網路實現更加高效的運轉,其中緩存礦工將緩存熱門數據來實現更快的調用速度,而檢索礦工則將幫助應用快速定位所需數據的位置。 3、多副本可恢復存儲證明 (PoDR²) 上文中所提到的數據預處理、向礦工分發等過程,屬於CESS創新的多副本可恢復存儲證明(PoDR²)機制。多副本可恢復存儲證明(PoDR²)機制確保CESS平台有效的存儲了用戶上傳數據時定製的副本。任意一份數據上傳CESS系統后,將會自動複製若干個數據副本(默認為三份,可定製),並為每個數據副本生成可恢復證明所需要輔助驗證元數據,並將這些元數據保存到區塊鏈系統之中。 此時,CESS可將處理后的數據下發至各個存儲礦工之上,在有效的周期內,礦工需要上報自己存儲的數據,便於CESS系統確認數據是否損壞。 值得一提的是,PoDR²機制會以組成單個文件(包括所有副本)的所有數據段為整體進行統計與監測。一旦某個數據段被認定為損壞時,CESS會自動生成新的數據段作為補充,併發送至新的存儲礦工,保證副本的可恢復性,提升系統數據存儲的魯棒性。 顯而易見的是,CESS的存儲機制最大的不同點就在於:相較於依賴礦工對數據進行冗餘等保護操作的設計,CESS在系統的底層就實現了對數據的加密、冗餘等保護策略,而礦工需要做的僅僅是將系統處理好的數據段進行存儲並保證存儲的有效性。此外,即使部分礦工丟失了數據,系統也可以通過其他的數據段實現對原始數據的還原。此舉大大降低了單點故障的可能性,提高了去中心化存儲網路中數據的安全性。 4、總結 CESS在存儲機制的設計上,一方面通過多副本可恢復存儲證明(PoDR²)機制實現了對數據隱私和安全的保護,並且設計了容災的應對措施;另一方面,也通過對存儲資源的「池化」,實現了存儲資源利用率的最大化,並且解決了真正調用「限制資源」的能力,為去中心化存儲在機制和設計理念上的創新和進步做出了卓越的貢獻。 WEEX唯客交易所官網:weex.com
CESS機制詳解(3):存儲、內容分發網路與多副本可恢復存儲證明
Previous: CESS 機制詳解(4):應用層