日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IPFS的文件存储模式

發布時間:2023/12/13 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IPFS的文件存储模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IPFS是如何進行文件存儲的

  • IPFS采用的索引結構是DHT(分布式哈希表),數據結構是MerkleDAG(Merkle有向無環圖)

DHT(分布式哈希表)

  • 參考鏈接

?MerkleDAG(Merkle有向無環圖)

  • 參考鏈接

MerkleDAG功能

  • 內容尋址:使用多重哈希來唯一識別一個數據塊的內容
  • 防篡改:可以方便的檢查哈希值來確認數據是否被篡改,如果數據被篡改或損壞,IPFS會檢測到
  • 去重:由于內容相同的數據塊哈希是相同的,可以很容去掉重復的數據,節省存儲空間

?IPFS的單文件存儲

步驟

  • 1、把單個文件拆分成若干個256KB大小的塊(block);
  • 2、逐塊(block)計算blockhash,hashn=hash(blockn);
  • 3、把所有的blockhash拼湊成一個數組,再計算一次hash,便得到了文件最終的hash,hash(file)=hash(hash1……n),并將這個hash(file)和blockhash數組“捆綁”起來,組成一個對象,把這個對象當做一個索引結構;
  • 4、把block,索引結構全部上傳給IPFS節點,文件便同步到了IPFS網絡了;

注意

  • 小文件(小于1KB)的文件,IPFS會把數據內容直接和Hash(索引)放在一起上傳給IPFS節點,不會再額外的占用一個block的大小
  • 如果對于大的文件進行數據的追加操作,僅僅是新增1KB的數據,也需要重新上傳嗎?事實并非如此,IPFS在儲存數據的時候,同一份數據只存儲一次,文件是分塊(block)存儲的,hash相同的block,只會存儲一次,也就說,前面1G的內容沒有發生改變,其實IPFS并不會為這些數據分配新的空間,只會為最后1K的數據分配一個新的block,再重新上傳hash,實際占用的空間是:1G+1K;
  • 即使是不同文件的相同部分也僅僅會存儲一份,比如電影資源的影音部分相同,但是只有字幕部分不一樣,那么不同的字幕會和音影資源拼接,形成新的文件資源。這樣一來就可能會有很多文件的索引指向同一個block,就構成了前面提到的一個數據結構——MerkleDAG。

參考鏈接

  • DHT 分布式哈希表
  • Merkle trees and directed acyclic graphs (DAG)

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的IPFS的文件存储模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。