史上最简单的一眼就能懂IPFS的架构(干货)

币安Binance,全球排名第一的最大的加密货币交易所。稳定,安全,可靠!→
欧易OKX,最大的老牌加密货币交易所之一,对中文用户非常友好!→
芝麻开门Gate.io,老牌加密货币交易所,2013年创办至今,原名“比特儿”!→


本文根据 Juan Benet, David Dias 由小编整理,注释,让大家看的更方便定义了 IPFS 协议栈、子系统、接口,以及如何将其整合,是对系统如何整合的 顶层协议描述。

IPFS 与 Merkle DAG 节点与网络模型 协议栈 应用与数据结构(IPFS 顶层) 提取对象的生命期 IPFS 用户接口

一:IPFS 与 Merkle DAG IPFS 的核心是梅克尔有向无循环图(MerkleDAG)注释① ,图的链接是哈希值。这使得 IPFS 中所有 的对象具备以下属性:

1. 授权的:内容可以被哈希并且通过链接进行验证。

2. 永久保持的:一旦文件被提取,对象就可以永久性的缓冲。

3. 通用性的:任何数据结构都可以被表述为梅克尔有向无循环图。

4. 去中心化的:任何节点都可以创建对象,不需要从中心节点写入。 相应地,以下属性构成了整体性系统

相应的的以下属性 构成了整体性系统

⑴ 链接是按内容寻址的。

⑵ 对象可以被非信任的节点所服务。

⑶ 对象可以被永久缓存起来。

⑷ 对象可以被离线创建与使用。

⑸ 网络可以被分区与合并。

⑹ 任何数据结构都可以被模式化与分布式。

二. 节点与网络模型 IPFS 网络使用基于 PKI(注释②) 的身份认证。

IPFS 节点是一段程序,可以查找、发布、复制梅克尔对象。其身份通过私钥定义,典型定义如下:

PrivateKey, publicKey := keygen() nodeID: = multihash(publicKey) 2.1 Multihash 与 upgradeable hashing

IPFS 中所有的哈希表都采用了一对多的 multihash,一种自描述的哈希格式。实际应用 的哈希函数依赖于安全需要。IPFS 中的密码系统是可升级的,意思就是当哈希函数中止或突 破的时候,网络可以迁移到更加安全(强壮)的哈希中去。不过当对象需要再哈希、或者链 接复制时,这也是有代价的。

目前 IPFS 节点必须支持以下哈希函数:

SHA2-256

SHA2-512

SHA3

3. 协议栈 IPFS 是一组模块化的协议构成的栈,栈中的每一层可能有多种实现方式。

该文仅关注相邻层间的接口问题,并简要的提及可能的实现方式,细节问题由其它文描述。

IPFS 包括以下五层:

Naming: 自我证证的

PKI 命名空间 IPNS MerkleDag: 数据结构格式(细腰围)

Exchange: 块传输与复制

Routing: 本地化定位对等节点与对象

Network: 建立对等结点间的连接

以下从下往上阐述

3.1 网络层 网络层提供网络中任意两个节点间的点对点传输(可靠的与非可靠的) :

1. NAT 遍历– UDP 穿越打洞(hole punching) ,端口映射,中继

2. 支持多种传输协议- TCP, SCTP, UDP

3. 支持加密、签名、或清除通信 4. 支持多工通信-多工连接,数据流,协议,对等结点

3.2 路由层-寻找节点与数据 IPFS 路由层提供两个重要的服务:

节点路由-寻找其它节点 内容路由-寻找发布的数据给 IPFS 路由系统提供了公共接口,并有着各种不同的实现,比如: DHT:最常见的路由协议,DHT 可以创建半持久化的路由记录,并且在网络中缓冲存储 在分布式缓冲之中。

3.3 数据块交换-传输内容-寻址数据 IPFS 数据块交换管理成批数据传输的协商,一旦节点相互了解,并且连接之后,交换协议就 控制支配基于内容寻址的数据块传输。 数据块交换提供了公共接口,其实现有多种方式,例如: Bitswap: 是主要的数据交换协议, 是 BitTorrent 中很新的一代, 支持任意类型的 DAG。 HTTP:是一种简单的数据交换协议,可以通过 HTTP 客户端与服务端实现。

3.4 MerkleDag-让数据变得有意义 梅克尔有向无循环图(MerkleDag)是处于 IPFS 核心地位的数据结构。MerkleDag 图的 边是哈希表,梅克尔哈希图也称梅克尔网页(MerkleWeb)

注释1:Merkle DAG的全称是 Merkle directed acyclic graph(默克有向无环图)。它是在Merkle tree基础上构建的,Merkle tree是由美国计算机学家merkle于1979年申请的专利。Merkle DAG拥有的功能:内容寻址:使用多重哈希来唯一识别一个数据块的内容。防篡改:可以方便的检查哈希值来确认数据是否被篡改。去重:由于内容相同的数据块哈希是相同的,可以很容去掉重复的数据,节省存储空间

注释2:PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。(文章来源:星际闪电)

版权声明:
作者:比特巴士的朋友们
链接:https://www.btcbus.net/414.html
来源:比特巴士
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>