《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的IPFS 是一个分布式系统,用于存储和访问文件、网站、应用程序和数据。
而且,当您使用 IPFS 时,您不只是从其他人那里下载文件——您的计算机也有助于分发它们。当您在几个街区外的朋友需要相同的 Wikipedia 页面时,他们可能会像从您的邻居或任何使用 IPFS 的人那里一样从您那里获得它。
IPFS 不仅可以用于网页,还可以用于计算机可能存储的任何类型的文件,无论是文档、电子邮件,甚至是数据库记录。
可以从不由一个组织管理的多个位置下载文件:
最后一点实际上是 IPFS 的全名: InterPlanetary File System 。我们正在努力建立一个系统,该系统可以在不连贯或相隔很远的地方工作,就像行星一样。虽然这是一个理想主义的目标,但它让我们努力工作和思考,几乎我们为实现这一目标而创造的一切在家里也很有用。
IPFS 是一个点对点 (p2p) 存储网络。可以通过位于世界任何地方的对等点访问内容,这些对等点可能会传递信息、存储信息或两者兼而有之。IPFS 知道如何使用其内容地址而不是其位置来查找您要求的内容。
理解 IPFS 的三个基本原则:
这三个原则相互依赖,以启用 IPFS 生态系统。让我们从 内容寻址 和内容的唯一标识开始。
互联网和您的计算机上都存在这个问题!现在,内容是按位置查找的,例如:
相比之下,每条使用 IPFS 协议的内容都有一个 内容标识符 ,即 CID,即其 哈希值 。散列对于它所来自的内容来说是唯一的,即使它与原始内容相比可能看起来很短。
有向无环图 (DAG)
IPFS 和许多其他分布式系统利用称为有向无环图的数据结构 (打开新窗口),或 DAG。具体来说,他们使用 Merkle DAG ,其中每个节点都有一个唯一标识符,该标识符是节点内容的哈希。
IPFS 使用针对表示目录和文件进行了优化的 Merkle DAG,但您可以通过多种不同的方式构建 Merkle DAG。例如,Git 使用 Merkle DAG,其中包含许多版本的存储库。
为了构建内容的 Merkle DAG 表示,IPFS 通常首先将其拆分为 块 。将其拆分为块意味着文件的不同部分可以来自不同的来源并可以快速进行身份验证。
分布式哈希表 (DHT)
要查找哪些对等方正在托管您所追求的内容( 发现 ),IPFS 使用分布式哈希表或 DHT。哈希表是值键的数据库。 分布式 哈希表是一种表在分布式网络中的所有对等方之间拆分的表。要查找内容,您需要询问这些同行。
libp2p项目 (打开新窗口)是 IPFS 生态系统的一部分,它提供 DHT 并处理对等点之间的连接和交谈。
一旦你知道你的内容在哪里(或者更准确地说,哪些对等点正在存储构成你所追求的内容的每个块),你就可以再次使用 DHT 来查找这些对等点的当前位置( 路由 )。因此,要获取内容,请使用 libp2p 查询 DHT 两次。
然而,这确实意味着 IPFS 本身并没有明确保护 有关 CID 和提供或检索它们的节点的知识。这不是分布式网络所独有的。在 d-web 和 legacy web 上,流量和其他元数据都可以通过可以推断出很多关于网络及其用户的方式进行监控。下面概述了这方面的一些关键细节,但简而言之:虽然 节点之间 的 IPFS 流量是加密的,但这些节点发布到 DHT 的元数据是公开的。节点宣布对 DHT 功能至关重要的各种信息——包括它们的唯一节点标识符 (PeerID) 和它们提供的数据的 CID——因此,关于哪些节点正在检索和/或重新提供哪些 CID 的信息是公开的可用的。
加密
网络中有两种类型的加密: 传输加密 和 内容加密 。
在两方之间发送数据时使用传输加密。阿尔伯特加密文件并将其发送给莱卡,莱卡在收到文件后对其进行解密。这会阻止第三方在数据从一个地方移动到另一个地方时查看数据。
内容加密用于保护数据,直到有人需要访问它。Albert 为他的每月预算创建了一个电子表格,并用密码保存它。当 Albert 需要再次访问它时,他必须输入密码才能解密文件。没有密码,Laika 无法查看该文件。
IPFS 使用传输加密,但不使用内容加密。这意味着您的数据在从一个 IPFS 节点发送到另一个节点时是安全的。但是,如果拥有 CID,任何人都可以下载和查看该数据。缺乏内容加密是一个有意的决定。您可以自由选择最适合您的项目的方法,而不是强迫您使用特定的加密协议。
如果您精通命令行并且只想立即启动并运行 IPFS,请遵循此快速入门指南。请注意,本指南假定您将安装 go-ipfs,这是用 Go 编写的参考实现。
ipfs将其所有设置和内部数据存储在称为 存储库的目录中。 在第一次使用 IPFS 之前,您需要使用以下ipfs init命令初始化存储库:
如果您在数据中心的服务器上运行,则应使用server配置文件初始化 IPFS。这样做会阻止 IPFS 创建大量数据中心内部流量来尝试发现本地节点:
您可能需要设置大量其他配置选项 — 查看完整参考 (打开新窗口)更多。
后面的散列peer identity:是您节点的 ID,与上面输出中显示的不同。网络上的其他节点使用它来查找并连接到您。如果需要,您可以随时运行ipfs id以再次获取它。
现在,尝试运行在ipfs init. 那个样子ipfs cat /ipfs/ /readme。
您应该看到如下内容:
您可以 探索 存储库中的其他对象。特别是quick-start显示示例命令尝试的目录:
准备好将节点加入公共网络后,在另一个终端中运行 ipfs 守护程序,并等待以下所有三行显示您的节点已准备好:
记下您收到的 TCP 端口。如果它们不同,请在下面的命令中使用您的。
现在,切换回原来的终端。如果您已连接到网络,您应该能够在运行时看到对等方的 IPFS 地址:
这些是 /p2p/ .
现在,您应该能够从网络中获取对象了。尝试:
使用上述命令,IPFS 在网络中搜索 CIDQmSgv...并将数据写入spaceship-launch.jpg桌面上调用的文件中。
接下来,尝试将对象发送到网络,然后在您喜欢的浏览器中查看它。以下示例curl用作浏览器,但您也可以在其他浏览器中打开 IPFS URL:
您可以通过转到 来查看本地节点上的 Web 控制台localhost:5001/webui。这应该会弹出一个这样的控制台:
Web 控制台显示可变文件系统 (MFS)中的文件。MFS 是内置于 Web 控制台的工具,可帮助您以与基于名称的文件系统相同的方式导航 IPFS 文件。
当您使用CLI 命令ipfs add ...添加文件时,这些文件不会自动在 MFS 中可用。要查看您使用 CLI 添加的 IPFS 桌面中的文件,您必须将文件复制到 MFS:
—END—
开源协议:MIT License
开源地址:https://github.com/ipfs/kubo
目前的ipfs、Filecion矿机越来越火热,对于很多人来说,不理解IPFS分布式存储是什么,也不知道Filecion矿机到底是什么意思,那让我们来聊一聊!Ipfs是一个全球性的、P2P点多点分布式存储协议,它可以将所有的相同的文件系统连接起来,传统的互联网协议HTTP主要是搜索域名地址,而ipfs则是搜索内容地址,ipfs的出现超越了http协议,未来的互联网可能会是ipfs趋势。
关于存储:
存储其实就是数据的存储,互联网的发展很迅速,5G时代的到来,无非带来了更多的考验,5G技术、大数据,的人工智能及物联网的到来,它们的运行,时时都是数据, 历史 数据与实时数据的积累,展示庞大的数据,这些数据的储存就成了大问题,原始的储存已经不能满足当下数据的需求,这些数据需要存储和流通。所以,像阿里云在10年前就开始研发数据云,因为马云看到了未来数据存储的量级,这种数据的量级会随着技术的进一步不断增长,目前一些全世界知名的数据云比如亚马逊云、阿里云、华为云、腾讯云等也无法满足世界增长的需求。所以世界,需要更大更好的更有保障的存储云。
储存分有DAS(直接储存)、集中储存、分布式储存三种。
DAS:主要是储存与计算连接,有扩展性、灵活性比较差。集中储存:它的设备类型丰富,主要是通过外部P/FC网络进行互连,具有扩展性;受控制器能力限制,扩展能力有限,属于PB级;设备到生命周期时需要更换,在数据迁移耗时需要耗力。分布式储存:分布式存储主要大规模应用于互联网,它追求扩展性和低成本,在进入传统企业市场后,开始构建了企业级存储能力,分布式存储的扩展性强,比较容易运维,上线快。
分布式储存指代的是一种的独特的系统框架类型,它是由一组通过互联网进行通信、为了完成共同任务而协调工作的计算机节点组成,它的存在是为了解决廉价的、普通机器完成单个计算机无法完成的计算和储存问题。它主要是为了利用更多的机器完成更多的数据计算和存储。简单的来说就像 汽车 拉货,比如 汽车 是机器,货物是数据,以前一个 汽车 运输货物的数量有限,需要换更大的货车,而现在想拉更多的货物就可以直接用火车,拉更多的货就直接加车厢,每个车厢都有动力,就不用担忧拉不动货物。分布式的存储原理就跟这个一样。存储经过几十年的发展,衍生出各种各样的存储产品,满足了企业应用的各种不同需求。在这个数字化的时代,存储的核心必须以客户为本、以数据为核心,倡导数据按需求服务的理念。
ipfs的“分布式存储”有两个非常重要的两个基石:存储和分布式。Ipfs分布式储存的特性主要是永久的、去中心化保存和共享文件 (区块链模式下的存储)。点对点分布式:P2P 点对点地保存着各种各样不同的数据。版本化:可追溯文件进行修改 历史 。内容寻址:通过文件内容生成独立哈希值来标识文件,而不是通过文件保存位置来标识,举个例子,就像我们找个人,没有电话的那个时代,我们是通过这人位置来找,需要找这个人所有可能存在的地方。而现在,我们是通过内容寻找位置的方式,只需搜索这个人的名字就可以找到这个人,节约了时间还有通过位置查找是遇见恶意的信息、遇到危险而导致自身的信息、网络、资金等受到威胁。它会把相同内容的文件在系统中备份唯一,节约了系统的存储空间 (区块链模式)。ipfs分布式存储简单地来说,就是将数据分散存储到多个数据存储服务器上。
关于Filecion矿机:
相信现在很多人都对虚拟货币并不陌生,很多人都在玩比特币,比特币是一种虚拟货币,这些虚拟货币的获取都需要用矿机来挖矿。而挖矿的方式有显卡挖矿、CPU挖矿等,知道了挖矿的方式,挖矿的原理,才能更好地挖取虚拟货币。那么Filecoin挖矿是什么意思呢?
为了保障IPFS项目的实施,还有防止所有的IPFS节点不会因为运营商恶意进行数据删改或者关停节点,导致存储用户无法获取数据数显的弊端。因此出现了Filecoin,Filecoin运用奖惩机制,通过保障节点的正常运行,来获得Filecoin的奖励,如果出现恶意的删改数据和关停节点Filecoin。Filecoin的出现保障了IPFS网络的正常运行,维持了网络秩序,那些违反了IPFS网络正常的将会罚款,收没所有的Filecoin奖励。一般正常情况下,不会出现这种情况,通过正常的节点运行就可以获得Filecoin奖励,只要有相应的奖励,几乎所有人都会遵守网络秩序。
在Filecoin 的初期,就跟比特币一样,大家都积极参加 Filecoin 挖矿工,希望在最早期成为环节中的一员,大家的想法都一样,想着越早进,挖得越多,就赚得更多,像早期滴滴的司机,大家都有赚到,因为设有有很多的奖励,而Filecoin也有很多的奖励政策。所以,IPFS硬盘矿机在市场上流行还不算多,早期选择一个好的矿机很关键。
B站服务器突然宕机
七月十三日晚上,“b站崩盘”冲上微博热搜第三名。新闻称,B站疑似发生服务器宕机事故,页面提示称“非常抱歉,该页面暂时无法访问”。除了网站和移动端显示加载错误之外,B站出品的轻视频、剪辑软件等均无法打开,显示页面加载出错。
在经过B站崩完,一时间承载不了庞大访问量的A站也崩了。豆瓣、晋江更是紧随其后。多个app齐崩,官方给出的回应是部分服务器机房发生故障,同时多个站点出现问题,大概率是与站点没有关系,应该是和云服务器有关。在经过短暂的排除修复之后,造成崩盘的原因应该就是短时间大量重复访问和数据承载量不足的影响。
IPFS实现存储“广撒网”
以HTTP为代表的中心化存储最常见的弊端就是,网络集中式访问流量爆棚就容易导致服务器崩溃,页面丢失,并且此类事件层出不穷。
一般来说,造成“宕机事故”的4大原因为运行环境问题、服务器性能问题、复制问题或者数据丢失或损坏。那么其中的运行环境问题的大头磁盘空间耗尽与数据损坏丢失问题都可以通过高承载量、安全稳定的去中心化存储项目——IPFS来解决。
IPFS是用区块链技术打造的一个具有可信任、可溯源、不可篡改等优点的去中心化存储协议,分布式的存储形式不会因为部分存储设备毁坏而丢失数据,存储“广撒网”,安全可靠,并且数据可以实现永久存储。
更重要的是,除了解决数据存储空间的高需求量问题之外,IPFS的出现更大的意义是为了在互联网世界中找到一种更好的方式,能够捍卫用户应有的权益,比如:用户的个人信息应该得到保护。
IPFS实现用户隐私“零泄露”
7月4日晚间,一则《关于下架“滴滴出行”App的通报》的消息迅速引爆舆论。
为什么国家相关部门把安全监管的板子首先打在滴滴等公司身上?这是因为以滴滴为代表的这些互联网平台公司手中掌握了巨量的数据资源。其实早在滴滴之前,6月26日,工信部就通报,截至6月21日,APP侵害用户权益专项整治行动共检查117万款APP,对4002款违规APP提出了整改要求,公开通报1248款整改不到位的APP,组织下架329款拒不整改的APP。这些APP主要是在违规收集个人信息、违规使用个人信息、频繁向用户骚扰索权、欺骗诱导用户跳转页面四个方面,严重损害了用户的权益,侵犯了用户的数据隐私。
从宏观层面上看,数据安全相关法律在持续不断地完善中。例如,6月10日,第十三届全国人民代表大会常务委员会第二十九次会议表决通过《中华人民共和国数据安全法》,将于2021年9月1日起施行。
然而,就目前来说,以国内的数据保护相关法律还不足以保护个人信息的隐私安全,很多时候只能起到事后追责的作用。在仅依靠法律手段无法完全避免数据被违规使用甚至泄露的情况下,是否还可以通过其他手段,来共同解决隐私安全问题?
在这样的背景下,解决数据激增、存储空间需求暴涨问题的IPFS也被认为是解决用户隐私问题的最佳利器之一。
IPFS如何提供完美解决方案
当我们把一个文件存放到IPFS上时,IPFS会自动把这份文件存储到足够多的、分布全球的存储节点。这样就最大程度的实现了数据存储的去中心化,没有一台机器可以单独的掌握完整的数据。同时,这样的存储模式也可以有效防止数据损坏或丢失,一个存储节点的数据碎片丢失,在其他存储节点那里仍然可以找到其他的副本,这样就能最大限度的避免由于存储硬件的故障而导致的数据丢失,用户的数据存储更加稳定安全。
更重要的是,如果数据被篡改或损坏,IPFS系统会自动检测到。今天,各种各样的云存储提供商都没有将其用户的数据进行加密保护。即使有一些提供商增加了静态加密功能,也只是通过控制用户的加密密钥来实现的,而不是创建真正的“不知情”隐秘存储系统,这意味着客户数据可能会被黑客或其他攻击者盗用并泄露或出售,是非常危险的。用户(或他们使用的应用程序)应在将数据提供给这些云存储提供商之前就对他们的数据进行加密,而不管这些数据是否集中。
存放到IPFS的数据几乎不可能被竞争对手窃取,除了将数据进行分散式存储之外,IPFS对每一份数据文件都会进行加密,只有用密钥才能打开进行访问,而这个密钥只有用户一人拥有。黑客或者攻击者就算能够盗窃到数据,也会由于没有密钥而无法了解到其中的内容。
日渐普遍的移动设备、传感器和“智能”机器都在数字化地跟踪人们的数据,解决个人信息安全问题已刻不容缓。可以说,IPFS的存储方式开创了一种全新的安全模式,对所有的内容都进行加密,有效保证了数据的安全,保护了用户的隐私权,十分适用于解决大数据技术的存储痛点。
可以预见,在我国加强新基建力度、人工智能和万物联网高速发展的 历史 潮流下,大数据需要一种安全的存储方式,也因此,IPFS及其配套产品、服务将会拥有一个越来越广阔的市场。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)