1、IPFS中的libp2p的内容及作用
(1) libp2p它类似现实世界的快递公司,负责分发数据和查找数据(发现节点、连接节点、发现数据、传输数据),它综合了各种协议、框架,连接着千百万个节点,使用它,就能实现去中心化的传输需求。
(2) libp2p包含:
a.Transports:传输层
b.Discovery:网络发现层
c.Peer Routing: 节点路由
d.NAT Traversal: NAT穿越层
e.Content Routing: 内容寻址
2、Merkle DAG与Merkle Tree
在功能上,MerkleDAG与MerkleTree很大不同,MerkleTree主要为了验证,例如验证数字签名,以及比特币Merkle Proof;
(1)Merkle DAG主要功能:
a.内容寻址:使用多种哈希来唯一识别一个数据块的内容。
b.防篡改:方便的检查哈希值来确认数据是否被篡改。
c.去重:相同内容的数据块有相同哈希值,可去掉重复数据,节省存储空间。
(2)MerkleDAG树形结构的搭建及使用原理:
在IPFS上存储文件时,首先会将文件切片,切割成256KB 大小的文件。
之后循环调用(MerkleDAG.Add)方法构建文件MerkleDAG。
(3) 文件hash值创建流程:
a.将切片之后的文件进行sha-256运算
b.将运算结果选取0~31位
c.将选取结果根据base58编码,运算结果前追加Qm 即为最后结果作为文件的46位hash值,根据IPFS底层代码计算,Merkle DAG为多叉树结构,最多为174叉树。
DAGService维护在源代码之中通常使用DAGService维护MerkleDAG,为MerkleDAG提供删除和增加的权限。
IPFS中的Multiformats项目是什么?
Multiformats 项目是为IPFS协议专门打造的,允许协议相互操作,可以保持协议灵活度、并可扩展、可升级,即打造一个永不过时的系统,目前应用在IPFS和libp2p模块上,在IPFS体系中主要负责身份的加密和数据的自我描述,是未来安全系统的协议集合,通过增强自我描述的格式值来实现,自描述格式可以让系统可互相协作和升级。
Multiformats协议里面包含以下协议:
multihash – 自描述哈希
multiaddr – 自描述网络地址
multibase – 自描述基编码
multicodec – 自描述序列化
multistream – 自描述流网络协议
multigram (WIP) – 自描述分组网络协议
3、 IPFS的文件表现形式是什么?
(1) IPFS 定义了一系列的对象构建了支持版本控制的文件系统,它与 Git 的对象模型非常类似,所有文件对象其实都通过 Protobuf 进行了二进制编码:
(2) IPFS 文件可以通过 list 和 blob 进行表示:其中 blob 不包含任何的链接,只包含数据;但是 list 却包含了一个 blob 和 list 的有序队列,而 tree 文件对象与 Git 中的 tree 非常相似,它表示一个从名字到哈希的文件目录;
(3) 最后的 commit 表示任意对象的快照;
4、 什么是CAS存储?IPFS与CAS的关系?
(1)CAS是英文“Content Addressing storage”的缩写,中文意义为固定内容寻址存储。这里所指的固定内容就是指一旦生成就不再发生改变的信息,比如数字媒体(图像、音视频等)、法律和参考文档、医疗影像、电子邮件、银行票据等。
(2)IPFS就是给予内容寻址的技术,就存储技术上来讲,IPFS 归属于CAS的范畴。
5、 CAS存储于传统存储的区别
由于CAS存储数据方式与传统NAS、 SAN最大的不同点就是CAS的免维护性。
这种免维护性,一方面减少了维护系统的人工成本开销,在NAS和SAN的情况下,一个管理员最多只能管理十几个TB的数据,而在CAS的情况下,一个管理员则能够轻松管理500TB的数据。
另一方面,免维护性也增加了数据的安全性和可靠性,例如,在NAS和SAN中,管理员可能在维护过程中意外甚至有意地删除、修改数据,在CAS中,数据的修改是无法实现的,系统会根据最初数据存储的情况自动修复。
本文来自投稿,不代表果核3.0立场,如若转载,请注明出处:https://www.guohe3.com/838