今天和大家要聊的話題:關(guān)于IPFS存儲的思考潭枣。此篇文章和區(qū)塊鏈關(guān)系不大锣咒,因為IPFS本身不屬于區(qū)塊鏈技術(shù),但是它和區(qū)塊鏈進行耦合是目前一種極佳的場景,今天的1000字纳账,我會從IPFS耦合區(qū)塊鏈方案和IPFS文件存儲引發(fā)的思考兩個維度講解。篇幅有限妹孙,以下不再普及概念相關(guān)問題倦炒。
IPFS耦合區(qū)塊鏈
IPFS耦合區(qū)塊鏈最能解決大文件上鏈存儲的問題。大家知道刁卜,區(qū)塊鏈存的是交易志电,而每個區(qū)塊是有大小限制的,比如BTC是1M左右蛔趴,中間還引發(fā)了閃電網(wǎng)絡(luò)和BCH的故事挑辆,所以區(qū)塊的大小直接限制了交易的大小。比如甲給已轉(zhuǎn)了1個比特幣孝情,就是一筆交易記錄到區(qū)塊鏈上鱼蝉,這幾個字段可能就幾字節(jié)而已。而實際落地場景中箫荡,遠不是存轉(zhuǎn)賬這么簡單魁亦,對于一個業(yè)務(wù)稍微復(fù)雜的聯(lián)盟鏈來講,我們所謂的“交易”可能是一個物流信息羔挡、一個合同摘要或者一份操作記錄等等洁奈,但是繞不開的話題是:這個“交易”大小的限制间唉。這里給大家一個參考,目前行業(yè)認可的一筆交易控制在100K以內(nèi)是個極佳狀態(tài)睬魂,若再大终吼,或者把交易拆分或者選擇部分核心數(shù)據(jù)上鏈,剔除掉不重要的數(shù)據(jù)氯哮。
講完存儲方式际跪,那IPFS是如何耦合的呢?其實對于90%以上的場景喉钢,IPFS僅僅用來解決了非結(jié)構(gòu)化數(shù)據(jù)上鏈的問題姆打。什么是非結(jié)構(gòu)化數(shù)據(jù)?比如一部電影肠虽、一張照片就是非結(jié)構(gòu)化數(shù)據(jù)幔戏,大家可想而知,一部高清電影的起步都是G級別的税课,這東西上鏈?zhǔn)遣豢赡艿南醒樱跃鸵玫絀PFS技術(shù):大文件分片后文件會得到一個幾K大小的hash值,當(dāng)基于這個hash提取文件的時候韩玩,IPFS首選會有一個分布式hash對照表垒玲,然后再去相應(yīng)的節(jié)點拉取所有分片,組合成一部完整的電影找颓,而這個幾K的hash值是可以上鏈的合愈。這樣,區(qū)塊鏈存操作指紋和非結(jié)構(gòu)化數(shù)據(jù)的hash值击狮,就能解決區(qū)塊鏈大文件存儲的問題了佛析。
以上就是常用的策略,總結(jié)一下:第一:區(qū)塊鏈存儲的都是交易彪蓬,而交易的大小是有限制的寸莫;第二,區(qū)塊鏈不可能存大的非結(jié)構(gòu)化數(shù)據(jù)档冬,IPFS的加入膘茎,使這個問題成為可能。一般講到這里捣郊,客戶是能接受這個方案的辽狈,但也不要忘記IPFS自身的各種缺陷(尤其是網(wǎng)絡(luò)穿透問題)慈参,就如區(qū)塊鏈缺陷一樣呛牲,這不打算講,大家可以自行百度驮配,接下來講一下IPFS文件存儲引發(fā)的思考娘扩。
IPFS文件存儲引發(fā)的思考
既然《爆擊區(qū)塊鏈3.0》着茸,我們就要落實更多維度的思考,下面說重點琐旁。
IPFS還可以縱向切分結(jié)構(gòu)化數(shù)據(jù)涮阔。什么是結(jié)構(gòu)化數(shù)據(jù)?簡單來說:比如一張表記錄了“誰灰殴、什么時間敬特、干了什么”等等,這就是結(jié)構(gòu)化數(shù)據(jù)牺陶。我們可以用IPFS玩什么呢伟阔?縱向分片切分!繼續(xù)打比方掰伸,比如我記錄一個結(jié)構(gòu)化數(shù)據(jù)皱炉,其中有七個字段,分別是:1(姓名)狮鸭、2(年齡)合搅、3(性別)、4(身高)歧蕉、5(轉(zhuǎn)賬金額)灾部、6(轉(zhuǎn)賬狀態(tài))、7(接收者)廊谓。為了保障數(shù)據(jù)的安全梳猪,我們慣用的做法是把這7個字段統(tǒng)一打包后,打散分片到不同的服務(wù)器上蒸痹,這是最簡單的思路春弥。其實,還可以這樣玩:我可以把字段1/3/5字段打一個包叠荠、2/4/6字段打一個包匿沛、7字段單獨打一個包,再把三個包分片到不同的服務(wù)器上榛鼎,就會分別形成三個子hash逃呼,這樣能看1/3/5或者2/4/6或者7字段的用戶得到對應(yīng)的子hash就可以了;再延伸一下者娱,為了安全抡笼,還可以進一步設(shè)定子三個子hash必須拼湊到一起才可以看到7個字段的數(shù)據(jù)。所以黄鳍,一個單純的IPFS(非區(qū)塊鏈技術(shù))就可以玩出很多類似“授權(quán)”和“數(shù)據(jù)更安全”的花樣出來推姻!