盛锐音乐视野筱虹|IPFS在分布式文件存储系统中的运用

IPFS(星际文件系统)是一种基于区块链内容的去中心化存储解决方案 。 IPFS主要利用散布在众多电脑以及节点上的点对点(Peer-to-Peer)网络模型来进行文件共享 。 通过这一网络模型 , 文件会分解成不同的部分并存储在网络节点上 , 节点再利用哈希表来对文件进行追踪 。 当根据各部分的哈希值再一次将零散的信息组合起来时 , 就相当于原始文件的重建过程 。
盛锐音乐视野筱虹|IPFS在分布式文件存储系统中的运用
文章图片
集中式和去中心化文件存储的区别 。
去中心化文件存储
IPFS的核心创新理念旨在利用分布式哈希表(DHT)进行文件系统的存储和检索 。 IPFS类似于BitTorrent协议 , 但在指向共享文件的方式上有所不同 。 它将以键值对的形式将文件储存在区块链上 。 所有数据将被分割成256千字节的区块 , 散布在节点或计算机网络中 , 只能通过有效协调来支持节点之间的高效访问和查找 。 BitTorrent并没有采用区块链技术 , 而是依靠种子文件来指向对应文件 。 你可以选择使不同的种子文件指向同一文件 , 但是在IPFS文件系统中 , 你只需要一个指向文件的哈希地址 。
在IPFS上发布文件的方式与云端发布文件的方式有所不同 。 IPFS上的所有数据都可以通过其哈希地址进行寻址 。 当有人申请访问数据时 , 他们是通过访问哈希地址获取数据的 , 而并非直接接触到实际文件本身 。 也就是说 , IPFS提供了文件实际地址的抽象概念 , 因此实际储存单元对应用程序都是无关紧要的 。 这种抽象概念为应用程序的开发人员消除了复杂性 。
盛锐音乐视野筱虹|IPFS在分布式文件存储系统中的运用
文章图片
IPFS如何跨节点存储文件 。
一般来讲 , 文件是在网络节点上进行托管的 。 这一做法受到了IPFS区块链上Filecoin这一类数字资产的启发 。 节点可以通过在其计算机或服务器上提供存储空间来托管文件 , 为相关文件提供一个哈希地址 , 然后将其分布在整个网络上 。 相同文件可以在不同节点上进行托管 , 这一过程就相当于对文本进行复制 。 需要该文件的用户将根据离其位置最近的节点散列来访问该文件 。
所有托管文件的节点都将引用根哈希(roothash) , 也就是对应文件的哈希地址 。 每当用户提出文件的访问申请时 , 就可以利用附近节点的哈希散列(根据根哈希对文件进行储存)来下载文件 。 IPFS系统上不会存在副本文件 , 因为哈希散列在上传文件时总会引用现成的文件或文件组块 。
一旦文件存放至IPFS区块链系统中 , 它将一直可用 , 直到通过解除文件固定格式并运行一个垃圾收集程序将其删除为止 。 不同的节点可以通过哈希值指向文件本身 。 只要哈希值能指向对应文件 , 不同节点就可以对其进行储存 。 IPFS系统可以随时进行更新以指向不同的哈希值 , 不过只要用户拥有原始哈希值 , 仍然可以访问该数据 , 至少有一个节点会永久储存该数据 。
存储寻址方案
IPFS系统与典型的基于网络的云存储系统的区别在于 , 它是以内容为基础的(内容寻址) , 而不是以地址为基础的(地址寻址) 。 地址寻址存储系统的一个案例是超文本传输协议(HTTP) 。 如果存储系统是以地址为基础的 , 就需要使用域名服务器的主机名来对服务器进行标示 。 它可以通过映射到友好用户名称的逻辑寻址方案(如IP地址)来跟踪主机 。 如果主机更改了名称或地址 , 它还必须在对应的名称服务表中进行修改 。
基于内容的寻址存储适用于从网络获取数据 。 这需要一个内容标识符来确定文件的实际存储位置 。 在这种情况下 , 用户是根据密码散列而非逻辑地址对数据进行访问的 , 这就相当于文件的数位指纹 。 不管谁上传了文件 , 上传时间和地点有什么区别 , 网络都会根据哈希值返回相同的内容 。