像那种代刷网站怎么做,请人代做谷歌外贸网站,官方静态网站模板下载,做网站的html框架IPFS是如何进行文件存储的
IPFS采用的索引结构是DHT#xff08;分布式哈希表#xff09;#xff0c;数据结构是MerkleDAG#xff08;Merkle有向无环图#xff09;
DHT(分布式哈希表)
参考链接MerkleDAG#xff08;Merkle有向无环图#xff09;
参考链接MerkleDAG功能…IPFS是如何进行文件存储的
IPFS采用的索引结构是DHT分布式哈希表数据结构是MerkleDAGMerkle有向无环图
DHT(分布式哈希表)
参考链接MerkleDAGMerkle有向无环图
参考链接MerkleDAG功能
内容寻址使用多重哈希来唯一识别一个数据块的内容防篡改可以方便的检查哈希值来确认数据是否被篡改如果数据被篡改或损坏IPFS会检测到去重由于内容相同的数据块哈希是相同的可以很容去掉重复的数据节省存储空间IPFS的单文件存储
步骤
1、把单个文件拆分成若干个256KB大小的块block2、逐块(block)计算blockhashhashnhash(blockn)3、把所有的blockhash拼凑成一个数组再计算一次hash便得到了文件最终的hashhash(file)hash(hash1……n)并将这个hashfile和blockhash数组“捆绑”起来组成一个对象把这个对象当做一个索引结构4、把block索引结构全部上传给IPFS节点文件便同步到了IPFS网络了
注意
小文件小于1KB的文件IPFS会把数据内容直接和Hash索引放在一起上传给IPFS节点不会再额外的占用一个block的大小如果对于大的文件进行数据的追加操作仅仅是新增1KB的数据也需要重新上传吗事实并非如此IPFS在储存数据的时候同一份数据只存储一次文件是分块block存储的hash相同的block只会存储一次也就说前面1G的内容没有发生改变其实IPFS并不会为这些数据分配新的空间只会为最后1K的数据分配一个新的block再重新上传hash实际占用的空间是1G1K;即使是不同文件的相同部分也仅仅会存储一份比如电影资源的影音部分相同但是只有字幕部分不一样那么不同的字幕会和音影资源拼接形成新的文件资源。这样一来就可能会有很多文件的索引指向同一个block就构成了前面提到的一个数据结构——MerkleDAG。
参考链接
DHT 分布式哈希表Merkle trees and directed acyclic graphs (DAG)