区块链 | IPFS 工作原理入门

🦊原文:What is the InterPlanetary File System (IPFS), and how does it work?
🦊写在前面:本文属于搬运博客,自己留存学习。



1 去中心化互联网

尽管万维网是一个全球性的网络,但在数据存储方面,它仍然主要是集中式的。也就是说,无论是物理的还是虚拟的服务器,都存放在大型的「server farms,服务器农场」或云平台上,通常由一家公司拥有。要访问这些服务器上的信息,用户必须建立一个超文本传输协议(HTTP)或超文本传输协议安全(HTTPS)连接到特定的服务器,该服务器作为数据检索的集中点。

HTTP 作为互联网上传输文件的主要手段,有其局限性。它仅适用于小文件,因为其成本效益高,并且无法充分利用创新的文件分发技术。同时,新的挑战不断出现,包括传输 peta 字节大小的数据集、管理高容量实时媒体流以及确保文件持久性。本质上,每个问题都归结为需要以去中心化的方式提供更高的可用性和容纳更大文件的需求。

几种技术,包括 镜像服务器内容分发网络,通过故意将内容存储在靠近最终用户的地方,有效地将从 “源” 服务器到消费者的内容分发。然而,重要的是要记住,尽管采取了这些措施,文件仍然只能在少数的几个区域被访问。

为了解决这些挑战,已经开发出了星际文件系统(IPFS)。IPFS 是一种创新的 Web3 现象,代表了一种去中心化网络实现,是文件存储和检索的重大突破。IPFS 提供了一个充满希望的替代方案,它赋予用户更大的控制权,并提供了更加坚韧的互联网体验。



2 IPFS 是什么,它是如何工作的?

正如其名称所暗示的,IPFS 协议旨在建立一个完全去中心化的系统,能够在地方之间相互隔绝或相距甚远的地方运行,比如星球之间。IPFS 是在 2015 年由计算机工程师 Juan Benet 提出的,并由 Protocol Labs 团队维护,该团队还创建了一个基于区块链技术的加密货币和协作数字存储及数据检索方法 —— Filecoin,如下图所示:

在这里插入图片描述

基本上,IPFS 是一个点对点(P2P)分布式系统,用于存储、访问和共享文件、网站、应用程序和数据。IPFS 建立在去中心化环境之上,并采用了来自 torrents 的分布式和节省带宽的技术。

种子文件(torrent file)是由 BitTorrent 协议所定义的,用于保存一组文件的元数据的文件,扩展名一般为 “.torrent”。种子文件本质上是文本文件,包含 Tracker 信息和文件信息两部分。Tracker 信息主要是需要用到的 Tracker 服务器的地址和针对 Tracker 服务器的设置;文件信息是通过对目标文件的计算生成的,计算结果根据 BitTorrent 协议内的 Bencode 规则进行编码。它的主要原理是将被下载文件虚拟分成大小相等的块,块大小必须为 2 k 2k 2k 的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和 hash 验证码写入种子文件中。因此,种子文件就是被下载文件的 “索引”。



2.1 去中心化

左图是中心化的「客户端 — 服务器」结构,右图是去中心化的「点 — 点」结构:
在这里插入图片描述

中心化网络与去中心化网络的关键区别在于,数据是如何被标识和检索的。在中心化网络中,人们依赖于可信赖的实体(Server)来托管他们的数据,并使用「基于位置的」统一资源定位符(URL)来访问这些数据。



2.2 基于内容寻址

左图是中心化「基于位置的」寻址,右图是去中心化「基于内容的」寻址:
在这里插入图片描述

相比之下,IPFS 网络使用一个内容寻址系统,其中内容本身在帮助人们找到他们要找的东西方面起着关键作用。在 IPFS 中,每块内容都有一个独特的哈希值,称为 IPFS 内容标识符(CID)。这意味着内容是根据其哈希值而非位置来存储和检索的,这使得篡改或审查变得更加困难。

针对一个大文件,当它保存到 IPFS 网络中时会被分片,即把大的文件分成小的碎片。每个碎片都有自己的哈希值(CID),再根据碎片的哈希值生成对应的链接。



2.3 工作方式

IPFS 的去中心化网络由相互连接的计算机节点组成,这些节点使用分布式哈希表(DHT),这是一种去中心化存储系统,它为键值映射提供查找和存储。在 DHT 中,每个节点对其特定的键和映射值负责,并且能够有效地检索给定键对应的值。

🥕 DHT 中存储三种类型的记录:

  • 内容标识(CID)到节点标识(PeerID)的映射
  • 节点标识(PeerID)到节点地址(IP)的映射
  • IPFS 名称到 IPFS 指针的映射

IPFS 节点存储数据,并将其提供给任何请求它的人。当请求一个文件或网页时,该文件的副本会被缓存到请求者的节点上。随着越来越多的人请求相同的数据,会创建更多的缓存副本。后续对文件的请求可以由任何拥有它的节点或节点的组合来满足。这样,数据的交付和请求的履行就在多个位置之间分担,从而提高了效率和可访问性。

每个节点都会保存其下载过的文件的缓存,用来保证即使某一个持有该资源的节点退出 IPFS 网络,该资源仍然可以被其他节点访问。



3 IPFS 是区块链吗?

IPFS 是一种去中心化技术,与区块链相似,但它们有不同的目的、特征和应用场景。IPFS 致力于创建一个全球性的、去中心化的网络,用于存储和共享文件。它旨在通过在多个位置存储文件来提高传统网络协议的效率和弹性,从而使文件免受审查并确保即使在某些节点离线时也能保持可用。

另一方面,区块链主要作为去中心化的账本,以透明和不可篡改的方式记录交易或数据。区块链依赖于 共识机制加密算法 来确保存储在链上的数据的完整性和安全性。此外,它通常用于去中心化应用程序(DApps),涉及加密货币、智能合约等,例如去中心化金融(DeFi)。

尽管 IPFS 可以与区块链技术结合使用,但它们是为不同目的而设计的。IPFS 提供了一个去中心化的存储和分发系统,而区块链提供了一种去中心化和透明的方式来记录和验证交易或数据。

详细的比较如下:
在这里插入图片描述

IPFS 对内容有编址,而区块链没有;IPFS 允许更改内容,而区块链禁止。



4 IPFS 的应用有哪些?

IPFS 适用于各种目的,从全球内容交付、安全存储文件到促进高效文件共享。IPFS 可以作为公共区块链和其他 P2P 系统的互补文件系统。它有潜力增强像以太坊这样的平台上的 DApps 的可扩展性。通过与以太坊的智能合约的集成,IPFS 可以在加密生态系统内提供安全且成本效益高的存储能力,从而提高以太坊的整体性能。此外,IPFSFilecoin 结合可以创造数据存储的激励。这种组合在非同质化代币(NFTs)的数据开发和存储中可以发挥重要作用。

总的来说,IPFS 的应用范围广泛,从增强 DApps 的可扩展性到通过确保有益的数据记录来革命化 NFTs



5 IPFS 是否具有可追溯性?

每个 IPFS 节点都有一个公共的 PeerID,可以通过在 DHT 中查找来追踪与之关联的 IP 地址随时间的变化。

DHT 中存储了节点标识(PeerID)到节点地址(IP)的映射。

作为一个免费供所有人使用的 P2P 数据传输和存储协议,IPFS 是一个公共网络。参与网络的节点存储链接到全局一致的 CIDs 的数据,并通过公开可访问的 DHT 向其他节点广播其可用性。

因此,尽管节点之间的 IPFS 流量是加密的,但节点向 DHT 披露的基本元数据,包括它们的唯一节点标识符(PeerIDs)和它们提供的数据的 CIDs,是公开可访问的并且可以被追踪。任何人都可以在 IPFS 上访问这类数据。

数据被加密为 CIDs,其中数据是加密的,但 CIDs 是明文的。



6 IPFS 的缺点是什么?

普及率

采用 IPFS 的主要挑战之一在于其推广速度。尽管该技术拥有极具吸引力的功能,但与传统的网络协议相比,其普及程度并不高。为了克服这一难题,我们需要提升公众对 IPFS 的认识,缓解用户的顾虑,并提供高效工具和资源来推动向 IPFS 的平滑过渡。更广泛地采用 IPFS 要求我们根本改变获取和分发信息的方式,这可能需要用户和组织花费一定时间来全面接受。

互操作性

互操作性同样是 IPFS 面临的一个关键挑战。尽管它旨在取代 HTTP,成为互联网访问的主导协议,但 IPFS 需要与现有的网络协议无缝集成。这种集成可能要求对当前的网络基础设施进行重大修改,这可能会影响到 IPFS 的普及速度。

用户激励

激励用户向 IPFS 网络贡献资源也构成了一个重要的挑战。鉴于 IPFS 依赖于点对点(P2P)网络来分发和存储数据,因此设计有效的激励和奖励机制变得尤为关键。激发用户的积极参与和资源共享对于确保 IPFS 生态系统的持续性和增长至关重要。

安全性

安全性是任何技术都无法回避的持续关注点,IPFS 也不例外。愿意分享数据的用户会对使用 IPFS 的安全性感到好奇。虽然 IPFS 利用内容寻址和加密技术来保护存储在网络上的数据,但仍可能存在潜在的漏洞和安全风险,这些都需要被及时解决。不断加强安全措施和降低潜在威胁是确保 IPFS 网络中用户数据完整性和隐私的关键。

更新难

最后,尽管 IPFS 的去中心化和分布式特性在安全和隐私方面带来了优势,但这种架构的不可变性使得更新变得更为复杂。因此,需要定期且系统地推出新版本,以便有效地集成必要的升级和改进。

通过促进普及率、确保互操作性、创建有效的激励措施和增强安全性,IPFS 分布式文件存储协议可以克服这些障碍,实现作为去中心化和弹性文件管理变革性技术的潜力。



7 IPFS 的未来

IPFS 是一个 P2P 文件共享网络,最初于 2014 年推出,由于其独特的特性而逐渐受欢迎,这些特性为传统的「客户端 — 服务器」架构提供了一种替代方案。该协议已经通过增强 DApps 的可扩展性而彻底改变了加密领域,并在包括金融和媒体在内的各种行业中获得了关注。IPFS 的去中心化本质和内容可寻址系统使其成为未来网络技术的关键参与者。

IPFS 改变我们如何在互联网上存储、共享和访问信息的潜力是巨大的,随着技术的不断发展,我们可以期待未来进一步的进步和采用。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帕金森患者应该怎么注意生活方式?

在面对帕金森病的挑战时,科学合理地改善日常生活方式,不仅能帮助患者更好地管理病情,还能提升生活质量。今天,让我们一起探索如何通过简单的日常调整,为患有帕金森病的朋友们带来积极的变化。 饮食调整:营养…

【Mac】Photoshop 2024 for mac最新安装教程

软件介绍 Photoshop 2024是Adobe公司推出的一款图像处理软件,它支持Windows和Mac OS系统。Adobe Photoshop是业界领先的图像编辑和处理软件之一,广泛用于设计、摄影、数字绘画等领域。 Photoshop 2024的功能包括: 1.图像编辑:提…

MinIO学习(1) - 概览,安装

简介 MinIO 是一个高性能的分布式对象存储系统。 它是软件定义的,在行业标准硬件上运行,并且 100% 开源,主要许可证是 GNU AGPL v3。 MinIO 的不同之处在于它从一开始就被设计为私有/混合云对象存储的标准。 因为 MinIO 是专门为对象而构建…

【华为】华为防火墙双机热备

【华为】华为防火墙双机热备 实验需求实验拓扑配置FW5-M前骤单臂路由和VRRP划分防火墙基本区域部署HRP(华为心跳协议) FW6-B前骤单臂路由和VRRP划分防火墙基本区域部署HRP(华为心跳协议) LSW2PC NATSNAT :Easy IPDNAT&…

Linux进程管理与监控

一、相关概念 1、进程的的基本定义 在自身的虚拟地址空间运行的一个独立的程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称为一个进程。 2、进程的分类 系统进程:可以执行内存资源分配和进程切换等管理工作&am…

spring boot 自定义starter示例

springboot 约定规范 Starter项目的命名规范 建议自定义的starter 以 xxx-spring-boot-starter 命名,官方的Starter一般都是以spring-boot-starter-为前缀。这样做的目的是为了避免与官方或其他第三方提供的Starter产生冲突或混淆。 Starter项目的结构规范(重要) …

CentOS/Anolis的Linux系统如何通过VNC登录远程桌面?

综述 需要在server端启动vncserver,推荐tigervnc的server 然后再本地点来启动client进行访问,访问方式是IPport(本质是传递数据包到某个ip的某个port) 然后需要防火墙开启端口 服务器上:安装和启动服务 安装服务 y…

【1小时掌握速通深度学习面试1】卷积神经网络-上

目录 1.简述卷积的基本操作,并分析其与全连接层的区别 2.在卷积神经网络中,如何计算各层的感受野大小?卷积层的输出尺寸、参数量和计算量。 3.简述分组卷积及其应用场景 4.简述空洞卷积的设计思路 5.简述转置卷积的主要思想以及应用场景 1.简述卷积…

Mac数据恢复软件快速比较:适用于Macbook的10佳恢复软件

数据丢失导致无数个人和组织每天损失大量资金。更糟糕的是,某些文件具有货币价值和情感意义,使它们不可替代,并使数据恢复成为唯一可行的选择。最好的消息是Mac用户可以从各种数据恢复程序中进行选择。为了帮助您尽可能快速、轻松地恢复丢失的…

54.HarmonyOS鸿蒙系统 App(ArkTS)tcp socket套接字网络连接

54.HarmonyOS鸿蒙系统 App(ArkTS)tcp socket套接字网络连接 import socket from ohos.net.socket; import process from ohos.process; import wifiManager from ohos.wifiManager;import common from ohos.app.ability.common;let tcp socket.constructTCPSocketInstance();…

搜索引擎的设计与实现参考论文(论文 + 源码)

【免费】搜索引擎的设计与实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89249705?spm1001.2014.3001.5501 搜索引擎的设计与实现 摘要: 我们处在一个大数据的时代,伴随着网络信息资源的庞大,人们越来越多地注重怎样才能…

SpringCloud——consul

SpringCloud——consul 一、consul安装与运行二、consul 实现服务注册与发现1.引入2.服务注册3.服务发现 三、consul 分布式配置1.基础配置2.动态刷新3.配置持久化 四、参考 Eureka已经停止更新了,consul是独立且和微服务功能解耦的注册中心,而不是单独作…

实时监控RTSP视频流并通过YOLOv5-seg进行智能分析处理

在完成RTSP推流之后,尝试通过开发板接收的视频流数据进行目标检测,编写了一个shell脚本实现该功能,关于视频推流和rknn模型的部署请看之前的内容或者参考官方的文档。 #!/bin/bash # 设置脚本使用的shell解释器为bashSEGMENT_DIR"./seg…

【PCL】教程 example2 3D点云之间的精确配准(FPFH特征对应关系估计变换矩阵)

这段代码主要实现了点云之间的配准功能,旨在通过估计点云的特征并找到最佳的对应关系来计算一个变换矩阵,从而可以将源点云(src)变换到目标点云(tgt)的坐标系统中。 代码功能和方法总结如下: 估…

SEO之高级搜索指令(一)

初创企业需要建站的朋友看这篇文章,谢谢支持: 我给不会敲代码又想搭建网站的人建议 新手上云 用户除了可以在搜索引擎搜索普通关键词外,还可以使用一些特殊的高级搜索指令, 这些搜索指令普通用户很少会用到,对SEO人员…

贝叶斯回归

1. 贝叶斯推断的定义 简单来说,贝叶斯推断 (Bayesian inference) 就是结合“经验 (先验)”和“实践 (样本)”,得出“结论 (后 验)”。 2. 什么是先验? 贝叶斯推断把模型参数看作随机变量。在得到样本之前,根据主观经验和既有知…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习四

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

如何讲好ppt演讲技巧(4篇)

如何讲好ppt演讲技巧(4篇) 如何讲好PPT演讲技巧(四篇) **篇:精心准备,奠定演讲基础 一个成功的PPT演讲,离不开精心的准备。首先,要确定演讲的主题和目标,确保演讲内容清…

时序分析之setup/hold时钟path requirement解疑

目录 一、前言 二、时钟边沿选取 2.1 setup和hold 2.2 path requirement 2.3 同频率同相位 2.4 同频率不同相 2.5 倍频或分频关系 2.5 异步时钟 2.6 无公共周期 一、前言 在时序报告中,任选一条时序分析结果查看路径详细延时,会看到在source pa…

Vue3管理系统-路由设置+表单校验

一、配置路由规则 1.在views 下创建文件夹分类,搭好架子 2.配置路由规则 在router下Index.js import { createRouter, createWebHistory } from vue-routerconst router createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [//一级路由//这里可以…