首页 > 世链号 > IPFS的关系族谱、技术架构及工作原理
IPFSFilecoin  

IPFS的关系族谱、技术架构及工作原理

摘要:IPFS的关系、技术和工作原理

IPFS关系图

IPFS是由 Juan Benet (JuanBenet)于2014年5月启动的。在2015年,他创建的项目“IPFS”获得了 Y Combinator创业孵化竞赛的奖项,并获得了天使投资。

Rv4nE65J42yLkb

从本质上说, IPFS是一个内容可寻址、版本化、点对点超媒体的分布式存储、传输协议,其目的是补充甚至取代过去20年来使用的超文本媒体传输协议,希望构建一个更快、更安全、更自由的网络时代。

在开发 IPFS的过程中,协议实验室团队采取了高度模块化的方法,像搭积木一样去开发整个项目。在这些模块中, IPLD、LibP2P和 Multiformats服务于 IPFS的底层。它是 IPFS的激励层,使 IPFS所应用的数据有价值。

Rv4nE6UFH1E44b

Mutiformats是一组 hash加密算法和自描述方法的集合,它采用了SHA1SHA256SHA512Blake3B等6种主流加密方法来加密和描述 nodeID,并生成指纹数据。 Mutiformats根据已有的协议对数值进行自我描述修改,也就是说,从数值上就可以知道数值是如何生成的。

在 IPFS的核心部分,libP2P协议可以面对各种各样的传输层协议和复杂的网络设备,帮助开发人员快速构建可供使用的P2P网络层,快速并且节省成本。它的主要功能包括:发现节点,连接节点,发现数据,传输数据等。与现实世界中的快递员一样,它连接着成千上万的节点,除了负责发送数据,还负责寻找数据。

Rv4nEWZ2tVAfrs

IPLD是一种转换中间件,它将已有的各种数据结构统一为一种格式,以便于不同系统之间进行数据交换和互操作。目前, IPLD支持 BTC, ETH, EOS等主流公链区块数据。通过 IPLD中间件,可以将不同的区块结构统一成一个标准,为开发人员提供更高的效率标准,而不必担心性能、稳定性和 bug,这是 IPFS受到众多区块链项目欢迎的重要原因。

IPFS将这几个模块的功能应用到了一起,将它们作为一个容器应用程序集成,运行在单独的节点上,并且作为一个 Web服务提供访问。

因为 IPFS是一种开放源码的协议,所有人都可以免费使用 IPFS进行各种开发,所以目前 IPFS网络中节点的数量并不多,网络也不够稳定。为使 IPFS能迅速普及和推广,协议实验室创建了基于 IPFS网络的 Filecoin区块链项目,以激励参与 IPFS节点和存储数据的采购商。Filecoin通过与比特币相似的激励政策和经济模型,将这些应用的数据价值化,让更多的人创建节点,让更多人使用 IPFS。

Filecoin是 IPFS的经济激励系统,承载着 IPFS的价值传递,支撑着 IPFS的生态发展。

下一节课,我们将着重介绍 Filecoin,这是一门新课。

IPFS技术体系

IPFS有八层子协商栈,从上到下分别为身份、网络、路由、交换、对象、文件、命名、应用,各协议栈各司其职,又互相配合。

Rv4nEWZ2tVAfrs.jpg

识别及路由层

认证和路由层可以一起解释,对等节点认证和路由规则是通过 Kademlia协议生成制定的, KAD协议本质上是建立一个分布式、松散的 Hash表(distributed hash table),简称 DHT,每个加入到 DHT网络中的人都要生成自己的认证信息,然后通过该认证信息负责存储网络中的资源信息和其他成员的联系信息。

就像微信名片分享一样,在不能直接搜索微信号的情况下,如果你想找某人,可以通过分享名片给拥有此人联系方式的朋友来建立联系。

网路层

IPFS技术的核心层是网络层,使用lib2p支持任何传输层协议。NAT Traversal框架整合了 STUN、 TURN和其他类型的 NAT协议,使客户能够使用各种 NAT连接网络,从而实现对 IPFSp2p网络的 NAT通信,这对 IPFS的p2p网络非常重要。

交换层

IPFS团队将 BitTorrent称为 Bitswap,即类似迅雷、电驴这样的 BT工具,并将 BitTorrent称为 Bitswap,该工具增加了激励节点共享的信用和账单系统,用户向其他节点发送数据时可以提高信用值,而从其他节点接收数据时则降低信用值。若用户只是接收数据而不共享数据,则信用分越来越低,而被其它节点忽略。

图像层和文件层

还可以结合讨论对象层和文件层,它们共同管理 IPFS上80%的数据结构。大多数数据对象使用 Merkle DAG结构,这便于进行内容寻址和数据重置;文件层是一种与 DAG并列的新数据结构,它采用 Git式的数据结构来支持版本快照。

指定层

拥有自验证功能(当其他用户获得该对象时,使用指纹公钥进行验签,即验证使用的公钥是否匹配 NodeId,以验证用户发布的对象的真实性,同时获得可变的状态),并加入 IPNS这个巧妙的设计,使加密的 DAG对象名可以定义,增强可读性。

适用层

IPFS的核心价值在于,上面运行的应用程序,可以利用其类似 CDN的功能,在极低的带宽成本下,获取所需的数据,从而提高整个应用程序的效率。

如何使用 IPFS

IPFS根据文件内容寻址。对于每个文件, IPFS都分配一个独特的散列值(文件指纹:根据文件内容创建),即使两个文件的内容只有1位,散列值也不相同。因此, IPFS是基于文件内容进行寻址,与传统 HTTP协议基于域名进行寻址不同。

IPFS建立文件的文件版本管理。在整个网络中, IPFS去除了重复的文件,并为文件建立了版本管理,也就是说,每个文件的更改历史都会被记录下来,可以很容易地返回文件的历史版本查看数据。

基于散列值的文件查询。在查询文件时, IPFS网络会根据文件的散列值(全网惟一性)进行查找。因为每一个文件的散列值都是惟一的,所以查询非常简单。除了存储所需的数据外,每个节点还存储一个散列表,该散列表记录文件存储的位置,用于进行文件查询、下载。

IPNSIPNS允许用户使用私有密钥向 IPFS散列添加引用,使用公共密钥散列表明您的站点是最新版本。假如您使用过比特币,那么您可能对此比较熟悉,比特币地址也是公钥,如果链接不起作用,不必担心,您可以通过更改公钥所指向的内容而将公钥始终保留下来。通过这种方式,可以解决网站更新问题。下一步,只要确保这些站点的位置便于人们阅读,所有问题都解决了。

人们可以阅读的可变地址。IPFS/IPNS散列是一些很大很难看的字符串,不易记忆。因此, IPFS允许用户使用已有的域名系统(DNS)为 IPFS/IPNS内容提供人类可读的链接。通过将哈希插入到域名服务器上的 TXT记录,用户就可以完成此任务。

HTTP网关是连接新老网络的桥梁。有了 HTTP网关, IPFS就可以实现从 HTTP到 IPFS的转变,在浏览器完全支持 IPFS之前,当前 Web浏览器就可以访问 IPFS了。不久,用户就可以切换到 IPFS,完成网络的存储、分配和服务。

开放源码的 IPFS协议,支持任何团队和个人免费存储、下载数据,怎样才能使 IPFS迅速普及和发展,让更多的节点参与者愿意用自己的电脑硬盘为他人存储数据?它需要 IPFS的激励层

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。