区块链 | IPFS:IPNS(入门版)

ops/2024/11/13 9:44:10/

🦊原文:IPFS 与 IPNS 啥关系?
🦊写在前面:本文属于搬运博客,自己留存学习。这篇文章讲得太入门了,不涉及任何底层原理。



正文

随着 2019 年 12 月 12 日 Filecoin 测试网的上线,IPFS/Filecoin 在圈内外引起关注。在 IPFS/Filecoin 中:

  • IPFS 是协议层;
  • Filecoin 是激励层;

两者可以各自独立运作,不过作为协议层的 IPFS 是整个项目的根基。

原文是 2020 年的

存储在 IPFS 系统中的每个文件都用一个唯一的哈希值来标识,比如:

QmVCZeNR7eQNEu5Gekqqbnmk85v66cFHHjZZTGZxAqA2hD

因此在这个系统中检索文件依靠的是文件的哈希值。

IPFS 中,文件的哈希值被称为 CID,即文件标识符。

IPFS 有若干宏大的远景,其中一个就是部分甚至是完全取代现有的互联网 HTTP 协议,因为现有的 HTTP 协议有太多问题是在现有框架下无法解决的。然而罗马不是一天建成的,即便最终能取代 HTTP,这个路也还很长,人们在日常生活中还是要大量使用现有的互联网访问信息。



1 现存问题

当我们在互联网上浏览信息时,我们检索和访问信息实际上是通过网址 URL 来进行访问,而 URL 最终会被转换成而 IP 地址。比如我们访问新浪网的主页,它的 URL 是 http://www.sina.com.cn,我们访问这个 URL 的请求最终又会被转换成新浪的 IP 地址:116.199.8.10

但在 IPFS 系统中,我们却无法用 URL 进行访问,而只能用文件的哈希值。但是对已经习惯了用输入网址的方式访问互联网的用户而言,如果要看一个网页或者图片,输入一串从字面上看不出任何意义的字符串,那是相当痛苦的事,这完全不符合已经形成的用户习惯。如果这个问题不解决,再好的技术也无法普及,也无法让用户广泛使用。

那这个矛盾怎么解决呢?IPNS 就由此应运而生。

个人认为:IPNS 的功能远不只是用于提高地址的可读性😇



2 解决方案

IPNS 全称是 InterPlanetary Naming Service,星际命名系统。

假设我们有一个存在 IPFS 系统中的文件,它的哈希值是:

QmVCZeNR7eQNEu5Gekqqbnmk85v66cFHHjZZTGZxAqA2hD

哈希值看起来是一串数字和字母随机组成的乱码,不方便人类阅读。

有了 IPNS,我们可以把这个文件设置为一个大家都习惯的 URL,比如 http://www.mycompany.com/hello.html,而这个 URL 可以被 IPNS 解析为文件的哈希值。

因此当我们想看这个文件时,在浏览器输入 http://www.mycompany.com/hello.html 就可以看到这个文件了,否则用 IPFS 的哈希值打开这个文件就只能这样操作:

$ ipfs get QmVCZeNR7eQNEu5Gekqqbnmk85v66cFHHjZZTGZxAqA2hD

或者在浏览器地址栏中输入:

xxx/ipfs/QmVCZeNR7eQNEu5Gekqqbnmk85v66cFHHjZZTGZxAqA2hD

因此 IPNS 很好地解决了当前用户不习惯输入哈希值访问文件的方式,在现有的互联网系统和 IPFS 系统之间搭建了一个桥梁,是一个非常便利的工具。




http://www.ppmy.cn/ops/31107.html

相关文章

解决layui的bug 在layui tree 组件中 禁用选中父节点后自动选中子节点功能

最近做权限管理后台,用了layui tree 组件,发现选中了父节点后,自动选中了子节点。不满足现实业务需求。所以微调了下源代码。 在用树形组件中,在用文档中 tree.setChecked(demoId, [2, 3]); //批量勾选 id 为 2、3 的节点 用这句…

Gitea 上传用户签名

在 Gitea 的用户管理部分,有一个 SSH 和 GPG 的选项。 单击这个选项,可以在选项上添加 Key。 Key 的来源 如是 Windows 的用户,可以选择 Kleopatra 这个软件。 通过这个软件生成的 Key 的界面中有一个导出功能。 单击这个导出,…

Redis-单机安装

试图从官网注册不了我也不知道什么情况。 网盘自取吧,链接:https://pan.baidu.com/s/1KERBQaH9gCT10AGt9z0_jg?pwdyjen 安装比较简单,照着敲就完了每一步都试过了,先单机安装,后面搭建集群。 1.将安装包放到/usr/…

ROS常用命令详解

摘要:ROS(Robot Operating System,机器人操作系统)是一个为机器人软件开发提供灵活框架的开源系统。在ROS中,常用命令是开发者进行机器人软件开发和调试的重要工具。本文将对ROS的常用命令进行详细介绍,包括节点管理、话题操作、消息查看、服务调用以及包管理等方面的命令…

TS 泛型

泛型&#xff08;宽泛的&#xff0c;不确定的类型&#xff09; 使用场景&#xff1a;定义一个函数或类时&#xff0c;无法确定要使用的具体类型&#xff08;返回值、参数、属性的类型不能确定&#xff09;泛型使用时相当于一个参数 functiondemo<T>(arg: T): T{return …

安卓手机APP开发__媒体开发部分__分享声音的输入

安卓手机APP开发__媒体开发部分__分享声音的输入 目录 概述 安卓10之前的版本的行为 安卓10的行为 共享场景 小助手普通的APP 有可读取权的服务 普通的APP 两个普通的APP 语音电话 普通的APP 概述 声音的输入通常来自于内嵌的麦克风,还有外置的麦克网,或者是一个…

Git可视化工具tortoisegit 的下载与使用

一、tortoisegit 介绍 TortoiseGit 是一个非常实用的版本控制工具&#xff0c;主要用于与 Git 版本控制系统配合使用。 它的主要特点包括&#xff1a; 图形化界面&#xff1a;提供了直观、方便的操作界面&#xff0c;让用户更易于理解和管理版本控制。与 Windows 资源管理器…

JVM面试

1.Java 运行时一个类是什么时候被加载的&#xff1f; 一个类在什么时候开始被加载&#xff0c;《Java 虚拟机规范》中并没有进行强制约束&#xff0c;交给了虚拟机 自己去自由实现&#xff0c;HotSpot 虚拟机是按需加载&#xff0c;在需要用到该类的时候加载这个类 2.JVM 一个…