解读IPFS协议栈的七个主要子系统!

当前位置:首页 > 币圈百科 > 解读IPFS协议栈的七个主要子系统!

解读IPFS协议栈的七个主要子系统!

2023-01-13币圈百科255

IPFS是一个分布式文件系统,它将现有的和经过验证的对等技术结合到一个统一的系统中。它旨在利用分布式哈希表(Kademlia)、BitTorrent、版本控制系统(Git)和自认证文件系统(SFS)的优势,创建一个新的平台,用于编写和部署应用程序以及分发和版本化大数据。为了使协议面向未来,IPFS广泛使用多种格式。

IPFS协议栈自下而上可分为七个子系统:

1 .身份

在P2P网络中,节点需要一种被其他节点识别的方式。在IPFS,网络中的每个节点都有一个NodeID,这是其公钥的加密散列。使用S/Kademlia的静态加密难题生成PKI密钥对(公钥私钥)。在第一次连接时,对等体交换公钥,并检查公钥的哈希是否等于其他NodeID。如果匹配,则建立连接;否则,该节点将与“伪”对等节点断开连接。通过多哈希格式,IPFS允许根据使用案例(例如,更强的安全性和更快的性能)和未来的功能选择使用不同的哈希算法。

2。P2P网络中的网络

节点需要一种与其他节点通信的方式。IPFS可以在几乎任何网络上运行,并管理传输、可靠性、连通性、完整性和真实性。一个特别有趣的方面是对等寻址,其中IPFS不依赖于地址或访问IP,而是使用多地址格式。通过这种方式,IPFS可用于覆盖网络,地址存储为底层网络的多字节字符串。

3。IPFS网络中的路由

节点需要能够找到其他对等体的网络地址以及能够蓑衣网小编2022提供特定数据的对等体的网络地址。因此,IPFS使用基于S/Kademlia和Coral的分布式松散哈希表(DSHT)。DSHT可以实现高效搜索,有效利用存储和带宽。IPFS DSHT用于声明一个节点有一些特定的数据,并通过引用数据的多哈找到一个可以为一些特定数据提供服务的节点。小元数据(=1KB)作为其值直接存储在DSHT中。对于更大的值,只存储引用,即可以提供数据的对等节点的NodeID。即使默认值是DSHT,IPFS的路由系统也可以针对不同的用例进行交换。

4。Exchange

交换数据IPFS使用一种类似于BitTorrent的协议,称为BitSwap。数据被分解成块并在节点之间交换。与BitTorrent不同,BitTorrent只在寻找相同文件的对等方之间交换数据,BitSwap块与所有IPFS节点交叉文件。BitSwap是一个数据市场,节点交换特定的数据。为了确保节点收到它们请求的数据,BitSwap实施了一种鼓励数据复制的策略,例如数字货币利用的FileCoin项目。因为每个节点可以使用自己的策略,所以大多数节点使用的策略应该是弹性的,以抵抗滥用。在这样的策略中,应该有一个分类帐来跟踪两个对等体之间的交换。如果对等体在接收数据块时共享并累积债务,他们将获得信用。如果对等体请求数据并有信用,它将接收块。如果一个对等体负债,其他对等体共享该块的概率将取决于负债的数量。这可以避免免费加载,并且仍然实现有效的数据传播。如果一个节点没有其他对等点请求的任何数据,并且积累了债务,它可以向其他对等点请求网络评估的数据块,但优先级低于它实际需要的数据块。如果一蓑衣网小编2022个对等体负债,其他对等体共享该块的概率将取决于负债的数量。这可以避免免费加载,并且仍然实现有效的数据传播。

5。对象

IPFS中的数据由Merkle有向无环图(Merkle Dag)组织。节点称为对象,可以包含数据和/或指向其他对象的链接。这些Merkle链接是嵌入在源中的目标的加密散列。因此,您将获得分布式和认证的哈希链接数据结构,它提供了许多有用的属性,如内容寻址、耐调和重复数据删除。 这意味着所有内容(包括链接)都由它的哈希值唯一且不可变地标识,并且可以以这种方式处理。内容通过了哈希验证,IPFS检测它是否被篡改或损坏,因为对象的哈希值会改变。所有内容完全相同(因此哈希完全相同)的对象只存储一次,这对于索引对象和非常常见的数据片段特别有用。

6。File

为了在Merkle-DAG上建模一个类似git的版本控制文件系统,IPFS定义了以下对象集合:

Blob是一个大小可变的数据块(无链接),表示IPFS的file

list表示大或大。可以将同一个节点链接到不同节点的有向图允许有效的重复数据删除。

树代表一个目录,包含blob、列表或其他树。

提交类似于git提交,代表对象版本历史中的快照。它们可以指任何类型的对象。

7。命名

在一个数据是内容寻址的系统中,对象的每次改变都会改变它的哈希值,你需要某种方式来传递新的或更新的内容。这可以通过变量命名来实现。IPNS(inter planetary Namespace System)为每个用户分配一个可变的命名空间,可以将对象发布到一个由用户私钥签名的路径上蓑衣网小编2022,以验证对象的真实性。这允许像URL、对等链接和名称缩短服务这样的人友好的名称。它的工作方式是将内容作为不可变的IPFS对象发布,然后将其哈希值作为元数据值发布在路由系统上。

解读IPFS协议栈的七个主要子系统! | 分享给朋友: