赫赫有名的 IPFS,旨在创建持久且分布式存储和共享文件的网络传输协议。
IPFS 即 InterPlanetary File System,一个点对点的分布式文件系统,旨在创建持久且分布式存储和共享文件的网络传输协议。
当前,使用 HTTP 协议传递相对小的文件其实是非常廉价和方便的,但是随着计算资源和存储空间的指数增长,我们面临了需要随时获取大量数据的问题,而 IPFS 就是为了解决这一问题出现的。
作为一个分布式的文件系统,IPFS 提供了一个支持部署和写入的平台,同时能够支持大文件的分发和版本管理;为了达到上述的目的,IPFS 协议被分成七个子协议,分别负责 IPFS 中的不同功能。
法国兴业银行副总裁:加密货币的会计并不像最初看起来那么简单:金色财经报道,法国兴业银行副总裁Prasoon Mukherjee发布博客文章称,加密货币的会计并不像最初看起来那么简单。因此,必须理解的是,在此资产类别存在如此多的模糊性和可明确识别的会计规则的情况下,必须在报告中进行一定程度的披露,以告知利益相关者按照规定行使会计选择的理由根据 IAS 1 - 财务报表的列报。[2021/12/26 8:04:33]
身份系统的主要作用就是表示 IPFS 网络中的每一个节点,所有的节点都通过唯一的 NodeId 进行标识,代表每一个使用 IPFS 的用户。
作为一个分布式的存储系统,节点之间的通信和信息传递都需要通过网络进行,同时能够使用多种传输层协议并保证可靠性、连通性、信息的完整性以及真实性。IPFS 可以使用任意的网络进行通信,它并没有假设自己一定运行在 IP 协议上,而是通过 multiaddr 的格式来表示目标地址和使用的协议,以此来兼容和扩展未来可能出现的其他网络协议。
在一个分布式系统中,检索或者访问其他节点中存储的资源就需要通过一个路由系统,IPFS 使用了基于 S/Kademlia 和 Coral 中的 DSHT 实现了路由系统,我们能够在 libp2p/go-libp2p-routing/routing.go 中找到 IPFS 路由系统的接口,实现三种基本的功能,内容路由、节点路由以及数据存储。
在 IPFS 中,数据的分发和交换使用 BitSwap 协议,BitSwap 负责两件事情:向其他节点请求需要的 Block 以及为其他节点提供 Block。
同时,IPFS 使用 Ledger 创建了一个具有激励和惩罚的网络,保证了网络中的大部分节点能够交换数据并且正常运行。
IPFS 定义了一系列的对象构建了支持版本控制的文件系统,与 Git 的对象模型非常类似,并且所有文件对象其实都通过 Protobuf 进行了二进制编码。最顶层的 commit 就表示历史的某一次快照,对比两次 commit 以及子节点构成的树就能得到两次快照之间的差别,我们可以认为 Merkle DAG 和文件对象构成了整个 IPFS 中的文件系统。
到目前为止,IPFS 技术栈已经提供了一个点对点的数据交换系统,能够在节点之间发送 DAG 对象,并且可以推送和取回不可变的对象,但是可变的命名系统也是网络不可缺少的一部分,我们终究需要使用同一个地址获取不同的状态,因为不能因为网站的更新而改变域名,所以 IPFS 需要提供域名服务解决这一问题。
在 IPFS 中可以使用如下的可变命名空间来解决这些问题,用户可以发布一个对象,其他节点就可以通过 ipns 加上该用户的节点地址访问到这些发布到网络中的对象:
在 IPFS 不仅能够使用哈希访问可变对象,也能嵌入现有的 DNS 服务中很好的运行,解决了底层服务无缝切换的问题。
IPFS 是一个非常有意思的区块链底层技术,它在兼容现有互联网协议的基础上,实现了点对点的文件存储系统并且为大数据存储提出了方案,作者尝试了一下 IPFS 的官方客户端 go-ipfs 也确实比较好用,但是目前也是在项目的早期阶段,很多模块和功能还没有定型。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。