做SDS存儲的都知道,現(xiàn)在IPFS挖礦項(xiàng)目很多。IPFS挖礦對存儲的需求很大,因此經(jīng)常有朋友和我探討關(guān)于IPFS存儲的選型問題。今天,我們就來深入討論一下這塊內(nèi)容,大家可以根據(jù)自己的想法談?wù)勛约旱睦斫狻?/p>
IPFS對存儲的需求
IPFS指星際文件系統(tǒng)(InterPlanetary File System)。IPFS 是一個分布式的Web,點(diǎn)到點(diǎn)超媒體協(xié)議。可以讓我們的互聯(lián)網(wǎng)速度更快,更加安全,并且更加開放。IPFS協(xié)議的目標(biāo)是取代傳統(tǒng)的互聯(lián)網(wǎng)協(xié)議HTTP。
IPFS 引入 Filecoin 作為存儲之上激勵層,也就是 Filecoin 礦工存儲數(shù)據(jù)的同時,會得到一部分 Fil 虛擬幣收益。Filecoin 與其他區(qū)塊鏈項(xiàng)目有相似之處但也有不同,不同點(diǎn)主要體現(xiàn)在以下幾個方面:
質(zhì)押:Filecoin 礦工在進(jìn)行數(shù)據(jù)存儲之前,需要提交一定的質(zhì)押幣,因?yàn)樯婕暗綌?shù)據(jù)的完整性和安全性,所以官方對參與者設(shè)置了一定的門檻。如果出現(xiàn)錯誤,如存儲系統(tǒng)無法訪問,或數(shù)據(jù)丟失等情況,則可能不僅拿不到收益,還會把質(zhì)押的Fil幣全部扣除。
時空證明:與其他區(qū)塊鏈項(xiàng)目不同的是,F(xiàn)ilecoin 使用 PoSt(時空證明)作為共識算法。顧名思義,時空證明主要目的是證明數(shù)據(jù)在一段時間內(nèi)占用存儲系統(tǒng)的一部分空間。
時空證明的生成過程中,需要訪問底層存儲系統(tǒng),所以存儲系統(tǒng)的性能和穩(wěn)定性就跟時空證明的正確性密切相關(guān)。如果 IPFS/Filecoin 參與者可以遵照規(guī)則提供穩(wěn)定的時空證明,則參與者所獲得收益也會隨著存儲數(shù)據(jù)量的增加而水漲船高。
懲罰機(jī)制:Filecoin 的懲罰機(jī)制比較復(fù)雜,同時也很嚴(yán)格,如果頻繁出現(xiàn)失誤,那就得不償失了。跟存儲相關(guān)的懲罰主要有下面幾種:
A、時空證明出錯
時空證明出錯包括很多種情況,常見的如已封裝的數(shù)據(jù)丟失或數(shù)據(jù)出錯,會導(dǎo)致時空證明出錯。而出錯將會導(dǎo)致罰幣。
B、未提交時空證明
如果 Filecoin 礦工不僅沒有在一個證明周期內(nèi)提交證明,而且延遲的時間甚至超過了生成攻擊閾值,則會被系統(tǒng)認(rèn)為證明沒有提交。
C、違背合作
如果由于存儲服務(wù)不可用,或存儲系統(tǒng)故障導(dǎo)致礦工未能按照合約在規(guī)定時間內(nèi)完整且安全的存儲用戶數(shù)據(jù),則用戶可以馬上報告給主網(wǎng)。在確認(rèn)情況屬實(shí)后,將會對礦工進(jìn)行處罰,扣除礦工的質(zhì)押幣和其后的挖礦收益。
IPFS 后端存儲選擇
通過上面分析可以看出,IPFS 對數(shù)據(jù)存儲的安全性和完整性具有非常高的要求,所以怎么選擇存儲,就變得非常重要。我們主要從三個維度來談 IPFS 對存儲方案的選擇。
傳統(tǒng)NAS or 分布式:對于傳統(tǒng) NAS 來說,元數(shù)據(jù)和數(shù)據(jù)使用本地存儲,無法擴(kuò)展,不具備高可用,同時受限于存儲空間和性能,實(shí)際可保存的文件數(shù)有限,一般小于1億,存儲空間也為 TB 級別。分布式存儲系統(tǒng)中,數(shù)據(jù)采用分布式架構(gòu),可擴(kuò)展,具備高可用;一般情況下單命名空間中,文件數(shù)可支持百億,容量也支持百 PB 到 EB 級別。
在 IPFS 場景中,傳統(tǒng) NAS 會有一定的用武之地,但分布式存儲一定是趨勢。分布式系統(tǒng)帶來的高可用和容錯,是非常契合 IPFS 底層存儲需求的。
開源方案or 企業(yè)級存儲:對于 IPFS 場景,動輒幾十 PB 上百 PB 的存儲集群部署已經(jīng)是常態(tài)了,在這種情況下如何保證大規(guī)模存儲集群的數(shù)據(jù)安全和長期穩(wěn)定運(yùn)行就是 Filecoin 參與者們要思考的問題了。
隨著數(shù)據(jù)量的持續(xù)不斷增加,只有保證存儲系統(tǒng)可以穩(wěn)定提供服務(wù)的前提下,才可能做到收益最大化。開源方案短期內(nèi)可能成本較低,但如果由于大規(guī)模下運(yùn)維能力不足,對核心 IO 邏輯或者一些數(shù)據(jù)安全特性理解不透徹,則可能造成投資血本無歸。所以長期來看,選擇企業(yè)級存儲方案是更優(yōu)的選擇。
對象存儲or 文件系統(tǒng):IPFS 的底層存儲類型選擇上,目前市場主要有兩種聲音:文件系統(tǒng) & 對象存儲。
文件系統(tǒng)是以目錄樹的結(jié)構(gòu)進(jìn)行組織,以文件為單位進(jìn)行存儲的。對象存儲則主要是以扁平化的結(jié)構(gòu)進(jìn)行組織,所有對象都平鋪在存儲桶中,與文件系統(tǒng)一個明顯的不同是對象存儲的接口協(xié)議是 S3(事實(shí)標(biāo)準(zhǔn)),而非 POSIX、NFS 等標(biāo)準(zhǔn)文件系統(tǒng)的訪問方式,這也導(dǎo)致大部分場景無法做到直接適配。
對于IPFS 場景來說,選擇存儲類型應(yīng)該從以下幾個方面來考慮:
1、數(shù)據(jù)規(guī)模:Filecoin 本身主要存儲 32GB 大文件,所以需要存儲文件的數(shù)量非常少,對象存儲的海量小文件優(yōu)勢沒法發(fā)揮;
2、存儲結(jié)構(gòu):Filecoin 目錄結(jié)構(gòu)簡單,實(shí)際只有1~2層目錄,對于文件系統(tǒng)來說基本上是扁平的存儲結(jié)構(gòu),對象存儲同樣沒有什么優(yōu)勢;
3、應(yīng)用對接:Filecoin 原生使用文件系統(tǒng)接口訪問底層存儲,如果使用文件存儲可以做到無縫對接。如果使用對象存儲,則需要進(jìn)行 Filecoin 應(yīng)用代碼改造。這種情況下除了存儲產(chǎn)品,存儲廠商還需要提供持續(xù)的 Filecoin 社區(qū)的跟進(jìn)服務(wù),無論是應(yīng)用改造還是社區(qū)跟進(jìn),都需要投入大量的人力成本,這部分成本最終將轉(zhuǎn)嫁到整體方案成本中。
針對對象存儲應(yīng)用改造的部分,大致分為2塊:
1、對象存儲driver,這部分是指基于S3 SDK封裝的對象存儲客戶端,以及用S3 API 模擬合并讀等接口。
2,F(xiàn)ilecoin 代碼改造,這部分主要是指改lotus 相關(guān)代碼庫,以讓lotus 支持新的對象存儲driver,包括合并讀等接口。
后記
實(shí)際上 Filecoin 是一個非常典型的文件存儲場景,并且仍然屬于早期項(xiàng)目。項(xiàng)目本身還存在一些BUG和不穩(wěn)定,在這種情況下選用存儲廠商定制的 Filecoin 版本,并且跟隨社區(qū)主線代碼變更,如果碰到問題,無法確定是 Filecoin 問題還是存儲廠商問題。
綜上所述,這里比較建議選擇分布式文件存儲作為IPFS/Filecoin存儲系統(tǒng)。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )