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

🦊原文: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.mfbz.cn/a/591172.html

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

相关文章

C++奇迹之旅:C++内存管理的机制(终篇)

文章目录 📝malloc/free和new/delete的区别🚨 内存泄漏🎯什么是内存泄漏,内存泄漏的危害 🎯内存泄漏分类🎯如何检测内存泄漏🎯如何避免内存泄漏 🚩总结 📝malloc/free和n…

[XYCTF新生赛]-PWN:guestbook1解析(程序自带栈迁移,off by one覆盖rbp一字节实现栈迁移)

查看保护 查看ida 这里可以覆盖rbp最后一个字节,而且程序会执行两次leave ret 完整exp: from pwn import* #pprocess(./guestbook) premote(gz.imxbt.cn,20073) backdoor0x00401328for i in range(33):p.sendlineafter(index,str(i))payloadp64(backdo…

多模态大语言模型和 Apple 的 MM1

原文地址:multimodal-large-language-models-apples-mm1 2024 年 4 月 13 日 抽象是计算机科学中最关键的概念之一,具有一些最强大的影响。从简单的角度来看,抽象就是将某一事物应用于多种不同情况的能力。例如,如果你创造了一种…

如何让 PDF 书签从杂乱无序整洁到明丽清新

1、拉取书签(详细步骤看文末扩展阅读) 原状态 —— 杂乱无序 自动整理后的状态 —— 错落有致,但摩肩接踵 2、开始整理 全选自动整理后的书签,剪切 访问中英混排排版优化 - 油条工具箱 https://utils.fun/cn-en 1 粘贴 → 2 …

R语言数据探索和分析7-使用随机森林模型对中国GDP及其影响因素分析

一、研究背景和意义 国内生产总值(GDP)是宏观经济领域中最为关注的经济统计数据之一,它反映了一个国家或地区在一定时期内所创造的所有最终商品和服务的总价值。GDP的增长率不仅仅是一个国家经济健康状况的关键指标,还直接关系到…

leetCode68. 文本左右对齐

基本思路&#xff1a; leetCode68. 文本左右对齐 代码 class Solution { public:vector<string> fullJustify(vector<string>& words, int maxWidth) {vector<string> res;for(int i 0; i < words.size(); i){ // 枚举有多少个单词int j i 1; //…

【JVM】内存调优——内存泄漏、内存溢出

内存调优 什么是内存泄漏、内存泄漏&#xff1f; 内存泄漏&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在GC ROOT的引用链上&#xff0c;这个对象就不会被垃圾回收器回收。内存溢出&#xff1a;内存的使用量超过了Java虚拟机可以分配的上限&#xff…

数字孪生不能接入数据,那还叫数字孪生吗?花架子而已

Hi&#xff0c;我是贝格前端工场&#xff0c;经常给大家分享可视化和数字孪生项目&#xff0c;就有一些老铁说这个不能接入真实数据&#xff0c;是个花架子。我就乐啦&#xff0c;不接入数据那还叫数字孪生吗&#xff1f; 数字孪生是指通过数字化技术对实体世界进行建模、仿真和…

[1702]java旅游资源网上填报系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java旅游资源网上填报系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

「 网络安全常用术语解读 」SBOM主流格式SWID详解

国际标准化组织&#xff08;ISO&#xff09;和国际电工委员会&#xff08;International Electrotechnical Commission&#xff0c;IEC&#xff09;发布了ISO/IEC 19770-2软件标识&#xff08;Software Identification&#xff0c;SWID&#xff09;标签标准&#xff0c;该标准定…

数据结构与算法---线性表

线性表 1.顺序表 需求分析 /*创建顺序表具体功能&#xff1a;初始化顺序表销毁顺序表获取顺序表元素个数输出顺序表中的内容自动扩容增 --- 插入数据&#xff08;包含了尾部添加功能&#xff09;删 --- 删除数据&#xff08;包含了尾部删除功能&#xff09;改 --- 修改数据查…

(ARM)ORACLE JDK 22 的下载安装及环境变量的配置

目录 获取JDK 安装JDK 配置JAVA环境变量 其他补充&#xff1a;JDK 22的新特征 1. 语法 2. 库 3. 性能 4. 工具 在今年的3月份&#xff0c;ORACLE 更新了的JDK 发行版 JDK 22&#xff0c;作为了一位ORACLE Primavera系列产品的研究者&#xff0c;其实对JDK的迭代完全不感…

基于.NET WinForms 数据的CURD实现

开发工具 VS 2022 C#&#xff0c;数据库MS SQL SERVER 2019 1.WinForms界面 2.使用SqlDataApater DataSet DataGridView 读取数据 private void ReadData() {//数据库连接串string strConn "Data Source127.0.0.1;Initial CatalogTEST;Persist Security InfoTrue;Us…

Vue 组件通信

组件通信 组件与组件之间的数据传递 组件的数据是独立的&#xff0c;无法直接访问其他组件的数据。通过组件通信&#xff0c;可以访问其他组件的数据。 组件关系 父子关系非父子关系 组件通信解决方案 父子关系 父->子 父组件通过props将数据传递给子组件 App.vue …

模式识别作业:颜色算子的三种阈值分割算法

一、引言&#xff1a; 在图像处理中&#xff0c;我们往往需要提取图像的一些关键信息&#xff0c;比如本篇文章的内容——提取颜色&#xff0c;然而当我们需要提取某一种颜色时&#xff0c;无论图像余下的部分如何“丰富多彩”&#xff0c;他们都不再重要&#xff0c;需要被忽…

IDEA2024版本控制台乱码怎么解决?

在使用最新版本的IDEA时&#xff0c;可能会遇到控制台输出乱码问题&#xff1f; 在网上找了很多办法&#xff0c;修改了IDEA的vmoptions文件也没有用,最后发现原来是要修改这里 Setting>>Build&#xff0c;Execution,Deployment>>Runnr中的VM Options配置&#xf…

Vue进阶之Vue项目实战(一)

Vue项目实战 项目搭建初始化eslint版本约束版本约束eslint配置 stylelintcspellcz-githusky给拦截举个例子 zx 项目搭建 node版本&#xff1a;20.11.1 pnpm版本&#xff1a;9.0.4 初始化 vue3最新的脚手架 pnpm create vite byelide-demo --template vue-ts pnpm i pnpm dev…

2024年 Java 面试八股文——Mybatis篇

目录 1. 什么是Mybatis&#xff1f; 2. 说说Mybatis的优缺点 3. Xml映射文件中&#xff0c;都有哪些标签 4. #{}和&{}有什么区别 5. Mybatis是如何进行分页的,分页插件的原理是什么 6. Mybatis是如何将sql执行结果封装为目标对象并返回的&#xff1f; 7. Mybatis是怎…

【副本向】Lua副本逻辑

副本生命周期 OnCopySceneTick() 子线程每次心跳调用 --副本心跳 function x3323_OnCopySceneTick(elapse)if x3323_g_IsPlayerEnter 0 thenreturn; -- 如果没人进入&#xff0c;则函数直接返回endif x3323_g_GameOver 1 thenif x3323_g_EndTick > 0 thenx3323_CountDown…

简化Transformer模型,以更少的参数实现更快的训练速度

在深度学习领域&#xff0c;Transformer模型因其卓越的性能而广受欢迎&#xff0c;但其复杂的架构也带来了训练时间长和参数数量多的挑战。ETH Zurich的研究人员Bobby He和Thomas Hofmann在最新研究中提出了一种简化的Transformer模型&#xff0c;通过移除一些非必要的组件&…
最新文章