星际名称系统(IPNS)是一个创建个更新可变的链接到IPFS内容的系统,由于对象在IPFS中是内容寻址的,他们的内容变化将导致地址随之变化。对于多变的事物是有用的。但是很难获取某些内容的最新版本。

在IPNS中名字是被哈希的公钥。它与一条记录相关联,该记录包含有关其链接的哈希的信息,该信息由相应的私钥签名。新的记录可以在任何时候被签名与发布。

查看IPNS地址,使用了/ipns/前缀:

/ipns/QmSrPmbaUKA3ZodhzPWZnpFgcPMFWF4QsxXbkWfEptTBJd

IPNS不是在IPFS上创建可变地址的唯一方法。 您还可以使用DNSLink(当前比IPNS快得多,并且还使用更易读的名称)。 其他社区成员正在探索使用区块链存储通用名称记录的方法。

例如:

假设您要在IPFS下发布您的网站。 您可以使用Files API发布静态网站,然后获得一个可以链接到的CID。 但是,当您需要进行更改时,就会出现问题:您将获得一个新的CID,因为您现在拥有不同的内容。 而且,您不可能总是给别人新的地址。

这是Name API派上用场的地方。 使用它,您可以创建一个稳定的IPNS地址,该地址指向您网站最新版本的CID。

//文件的地址
const addr = '/ipfs/QmbezGequPwcsWo8UL4wDF6a8hYwM1hmbzYv2mnKkEWaUp' ipfs.name.publish(addr, function (err, res) {
// 接收到包含两个字段的资源:
// - name: 被发布的内容的名字
// - value: 名字指向的"真实"的地址
console.log(`https://gateway.ipfs.io/ipns/${res.name}`)
})

用这种方式,可以使用相同的地址重新发布一个新的版本到网页,默认情况下,ipfs.name.publish将会使用节点ID。

IPFS学习-IPNS的更多相关文章

  1. IPFS学习-DNS链接

    DNSLink 什么是DNS链接 DNS链接使用DNS TXT记录映射域名(如ipfs.io)到一个IPFS地址.因为你可以编辑自己的DNS记录,可以使他们总是指向最新版本的IPFS中的对象(如果修改 ...

  2. IPFS学习-分布式哈希表DHT

    Distributed Hash Tables(DHT) 分布式哈希表是一个分布式的键值对存储结构.在IPFS网络中,每一个节点都维护一个DHT的子集.当节点接受到一个请求.该节点要么直接回复,要么通 ...

  3. IPFS学习-哈希

    Hashes 哈希函数是接受一些任意输入并返回固定长度值的函数.具体值取决于所使用的给定哈希算法,例如SHA-1(GIT在使用),SHA-256,或者是BLAKE2,但是给予一个输入使用哈希算法总是返 ...

  4. IPFS学习-内容标识符(CIDs)

    内容标识符(CIDs) 内容标识符也称为CID,是用于指向IPFS中材料的标签. 它不会指示内容的存储位置,但会根据内容本身形成一种地址. CID简短,无论其基础内容的大小如何. CID基于内容的加密 ...

  5. IPFS星际节点网站 IPNS域名解析教程

    IPNS星际文件系统IPFS提供的域名命名空间,相当于经典HTTP协议中的DNS.只不过是,IPNS是将内容寻址的哈希值(HASH值)转换为域名,而DNS是将IP地址转换为域名. 前段时间,IPFS协 ...

  6. IPFS 使用入门

    在上一篇文章介绍了IPFS要做什么, 本篇文章介绍下IPFS怎么用, 按照本站的风格,我不会仅仅把一个个命令列出来,同时会说明命令在后面为我们做了什么. IPFS 安装 要使用IPFS, 第一步肯定是 ...

  7. 站在Web3.0 理解IPFS是什么

    尽管网络上,已经有不少文章讨论IPFS,不过真正讲明白IPFS想做什么的很少,文本尝试站在未来Web3.0的高度来看看IPFS究竟用来解决什么问题. DApp 的缺陷 对区块链有所了解的同学,知道区块 ...

  8. 什么是IPFS?(二)

    IPFS的的"宏伟"目标是取代HTTP, 那么先来看看IPFS是如何工作的? IPFS为每一个文件分配一个独一无二的哈希值(文件指纹: 根据文件的内容进行创建), 即使是两个文件内 ...

  9. 什么是IPFS?(三)

    前两篇介绍了IPFS的基本概念, 那么IPFS都可以用来做什么? 如果你认为仅仅是CDN, 永久的web? Are you kidding me ? IPFS可是要 --改变世界的... --变世界的 ...

随机推荐

  1. .NET Core 3.0 使用Nswag生成Api文档和客户端代码

    摘要 在前后端分离.Restful API盛行的年代,完美的接口文档,成了交流的纽带.在项目中引入Swagger (也称为OpenAPI),是种不错的选择,它可以让接口数据可视化.下文将会演示 利用N ...

  2. DDD实战与进阶 - 值对象

    目录 DDD实战与进阶 - 值对象 概述 何为值对象 怎么运用值对象 来看一个例子 值对象的持久化 总结 DDD实战与进阶 - 值对象 概述 作为领域驱动设计战术模式中最为核心的一个部分-值对象.一直 ...

  3. 折腾笔记-计蒜客t1156AC记

    欢迎查看原题地址 此题思路(最初版): 暴力,得出最相近的,1000ms呢,除非数据超大,否则不超时. 说明: 爆搜,搜出结果,时间复杂度基本 $O(n^2)$ 注:本文所有时间(与空间)复杂度仅为估 ...

  4. 从BWM生产学习工厂模式

    工厂模式应用非常之广,在JDK底层源码以及各大主流框架中随处可见,一般以Factory结尾命名的类,比如Mybatis中的SqlSessionFactory,Spring中的BeanFactory等, ...

  5. .net core 学习 读取配置文件

    在空项目中是没有配置文件的,首先要新建一个,配置文件内容如下,下面来读取各个内容 { "ConnectionStrings": { "DefaultConnection& ...

  6. mui开发:苹果手机自动全屏解决方案

    前一段时间,使用mui写app时,出现了苹果手机播放视频时,自动全屏的情况,并且无法点击控件,只能等到播放完毕后点击控件. 那么怎么解决这个问题呢,弟弟们请看我的下面. 1.在页面的video标签中, ...

  7. Java多线程——锁

    Java多线系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线 ...

  8. Objective-C (OC)

    1.OC  运行效率比较高,仅次于c.开发过程时,效率也比较高,不会次于java和C++: :表示继承 “{}”之间写字段或声明 }和@end之间写函数 import 相当于include 作用于和j ...

  9. Flask容器化部署原理与实现

    本文将介绍Flask的部署方案:Flask + Nginx + uWSGI,并使用docker进行容器化部署,部署的实例来源 Flask开发初探,操作系统为ubuntu. Flask系列文章: Fla ...

  10. Mysql 执行计划以及常见索引问题总结

    Mysql 执行计划以及常见索引问题总结