区块链 | 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.mfbz.cn/a/589330.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能消费记账|基于SSM+vue的大学生智能消费记账系统(源码+数据库+文档)

智能消费记账目录 基于SSMvue的大学生智能消费记账系统 一、前言 二、系统设计 三、系统功能设计 1 用户列表 2 预算信息管理 3 预算类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&#xff1…

R语言的学习—5—多元数据直观表示

1、数据读取 ## 数据整理 d3.1read.xlsx(adstats.xlsx,d3.1,rowNamesT);d3.1 #读取adstats.xlsx表格d3.1数据 barplot(apply(d3.1,1,mean)) #按行做均值条形图 barplot(apply(d3.1,1,mean),las3) barplot(apply(d3.1,2,mean)) #按列做均值图条形图 barplot(a…

Web,Sip,Rtsp,Rtmp,WebRtc,专业MCU融屏视频混流会议直播方案分析

随着万物互联,视频会议直播互动深入业务各方面,主流SFU并不适合管理,很多业务需要各种监控终端,互动SIP硬件设备,Web在线业务平台能相互融合,互联互通, 视频混流直播,录存直播推广&a…

手撕C语言题典——合并两个有序数组(顺序表)

搭配食用更佳哦~~ 数据结构之顺顺顺——顺序表-CSDN博客 数据结构之顺序表的基本操作-CSDN博客 继续来做一下关于顺序表的经典算法题叭~ 前言 88. 合并两个有序数组 - 力扣(LeetCode) 合并数组也是力扣上关于顺序表的一道简单题,继续来加深…

字节缓冲流

BufferedInputStream() 该类实现缓冲流输出对象(可以向底层输出流写入字节而不必为写入的每一个字节导致底层系统的调用) BufferedOutputStream() 创建BufferedOutputStream()将创建一个内部缓冲数组 当从流中读取或跳过字节时,内部缓冲区根…

Kubernetes学习笔记06

第十六章、Kubernetes容器交付介绍 如何在k8s集群中部署Java项目 容器交付流程 开发代码阶段 编写代码编写Dockerfile【打镜像做准备】持续交付/集成 代码编译打包制作镜像上传镜像仓库应用部署 环境准备PodServiceIngress运维 监控故障排查应用升级 k8s部署Java项目流程 …

云服务器+ASF实现全天挂卡挂时长

目录 前言正文1.安装下载2.编辑配置文件3.设置Steam社区证书4.启动ASF5.给游戏挂时长6.进阶-ASF自动启动且后台保活 前言 我遇到的最大的问题是,网络问题 其实不然,各大厂商的云服务器后台都有流量监控,意味着依靠一般方法是不能正常访问St…

高手的黑箱:AI时代学习、思考与创作

课程目录 01 不要错过这个时代的巨大红利,AI时代竞争力养成指南.mp4 02 解密高手的黑箱——那些创作高手不告诉你的事.mp4 03 创作:人生发展中最重要的事.mp4 04 创作中最重要的事(1):对过程的掌控力.mp4 05 创作…

更深层次理解传输层两协议【UDP | TCP】【UDP 缓冲区 | TCP 8种策略 | 三次握手四次挥手】

博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 再谈端口号 端口号的返回…

springBootAdmin监控

简介 用于对 Spring Boot 应用的管理和监控。可以用来监控服务是否健康、是否在线、以及一些jvm数据等等 Spring Boot Admin 分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用 http 通讯方式实现数据交互&#xf…

【设计模式】创建者模式之 工厂方法 抽象工厂

工厂方法模式(Factory Method) 一个特定功能,往往有多种实现方式,但是很难有某一个实现可以适用于所有情况,因此往往需要根据特定的场景选择不同的实现。试想:把选择具体实现的代码放在业务中会发生什么?每当我们需要…

【C++】vector类的增删改查模拟实现(图例超详细解析!!!)

目录 一、前言 二、源码引入 三、vector的模拟实现 ✨实现框架 ✨前情提要 ✨Member functions —— 成员函数 ⚡构造函数 ⭐无参构造 ⭐迭代器区间构造 ⭐n个值构造 ⚡拷贝构造 ⚡运算符赋值重载 ⚡析构函数 ✨Element access —— 元素访问 ⚡operator[ ] …

一文全面了解 wxWidgets 布局器(Sizers)

目录 Sizers背后的理念 共同特征 最小大小 边框 对齐方式 伸缩因子 使用 Sizer 隐藏控件 wxBoxSizer wxStaticBoxSizer wxGridSizer wxFlexGridSizer 布局器(Sizers),由wxWidgets类层次结构中的wxSizer类及其派生类表示&#xff0…

电商核心技术揭秘四十五:营销与广告策略(下)

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘相关系列文章合集(3) 电商技术揭秘四十一:电商平台的营销系统浅析 电商技术揭秘四十二&#…

苹果可能将OpenAI技术集成至iOS/iPadOS 18

🦉 AI新闻 🚀 苹果可能将OpenAI技术集成至iOS/iPadOS 18 摘要:苹果正在与OpenAI就将GPT技术部署在iOS/iPadOS 18中进行谈判。这项技术被视为可能增强的Siri功能,即“AI聊天机器人”。除Siri外,新技术还可能改善Spotl…

mac idea 下载spring 源码遇到的问题

一、Kotlin: warnings found and -Werror specified 这个问题网上看了很多文章多说是缺少cglib、objenesis包。然后执行了 实际还是没有什么用 解决: 最后自己看了一下前面一个警告。说的就是版本太低。所以我觉得是这个前置问题导致的 然后搜索了改这个Kotlin版本…

在Mac上恢复已删除文件夹的最佳方法

“嗨,我从我的Mac Documents文件夹中删除了很多文件夹。已删除的文件夹包含我的重要文档和文件,是否可以取回它们?垃圾桶已被清洁软件清空。如何在我的Mac上恢复已删除的文件夹? 当您在 Mac 上删除 1 或 2 个文件夹时&#xff0c…

免费开源语音克隆-GPT-SoVITS-WebUI只需 5 秒的声音样本

语音克隆-GPT-SoVITS-WebUI 强大的少样本语音转换与语音合成Web用户界面。 功能: 零样本文本到语音(TTS): 输入 5 秒的声音样本,即刻体验文本到语音转换。 少样本 TTS: 仅需 1 分钟的训练数据即可微调模型…

抖音小店运营实战班,全新升级 从零到进阶精通 分享月销百万小店核心秘密

课程内容: 1 2024抖音电商发展趋势及抖店运营策略(直播2024 0412).mp4 2 1-1抖音小店入驻流程(直播2024 04 12),mp4 3 1-2个体店铺VS企业店铺有什么区别(直播20240412).mp4 4 1-3抖音小店店铺搭建(直播2024 04 12).mp4 5 2-1-如何避免违禁词(附违禁词大全)(直播…

设计模式之模板模式

模板模式(Template Method Pattern)是行为设计模式之一,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤,从而达到复用算法框架…
最新文章