什么是行星间命名系统 Vaibhav Saini https://hackernoon.com/understanding-ipfs-in-depth-3-6-what-is-interplanetary-naming-system-ipns-9aca71e4c13b 为什么需要IPNS,如何使用它以及它与DNS的比较
IPNS需要什么?它如何与今天的DNS(域名系统)相比,它与它有何不同? 我们将探讨IPFS中的路由如何工作以及IPNS如何工作? 最近,我们将与IPNS一起玩。我们将使用IPFS堆栈主持和设置我的网站的路由。 希望你从这个系列中学到很多关于IPFS的知识。让我们开始吧! 为何选择IPNS? 为了理解我们为什么需要IPNS,让我们看看我们目前如何使用IPFS访问我们的照片,视频和模因。 顺便说一句,如果你想跟随我,你可以下载我的网站: wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://vaibhavsaini.com 当我将我的网站添加到IPFS时,我得到以下输出:
现在,我可以访问我的网站了 https://gateway.pinata.cloud/ipfs/QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB/ 但是这个链接有一些问题: 首先,它很难阅读,更不用说记住了。 其次,这是一个不可改变的联系。我所说的不可变链接是指这个链接是永久性的(由于内容寻址的性质)。如果我在我的网站中的任何地方添加一个逗号,根文件夹的CID将会更改,从而更改指向我的网站的链接。因此,每次我在网站上更改任何内容时,我都必须为每个想要访问我最新网站的人提供新链接...不酷。 这是IPNS的用武之地。 通过使用IPNS,您可以生成可变链接,其中: 将是人类可读的,易于记忆。 指向您网站的最新版本,个人资料照片,视频等。 IPNS中的名称(/ipns/链接中的哈希值)是公钥的哈希值。它与包含有关其链接的哈希的信息的记录相关联,该哈希由相应的私钥签名。可以随时签署和发布新记录。 换句话说,IPNS是一个基于公钥基础结构(或PKI)的全局命名空间,它允许我们构建信任链(因此您可以跟随公共密钥到其路由对等体),为我们提供加密和身份验证,并且仍然是实际上与其他名称服务兼容。因此,例如,我们甚至可以将DNS条目,洋葱或位地址等内容映射到IPNS地址。 IPNS不是在IPFS上创建可变地址的唯一方法。您还可以使用DNSLink(目前比IPNS快得多,并且使用更易读的名称。我们将在下面详细了解它)。其他社区成员正在探索使用区块链存储公共名称记录的方法。以下是对分布式Web命名系统的不同项目的一个很好的比较。 IPNS和DNS有一些相似之处。两者都解决了各自系统中的类似问题,前者在内容寻址系统中,后者在位置寻址系统中。 在位置寻址系统(今天的旧学校互联网)中,我们使用IP:PORT组合来访问我们的数据。因此,在位置寻址系统中,我的网站地址将是: http://18.205.129.69:80 这既不易读也不易记。 但这总是指向此地址上托管的最新内容。 网站 好的,但它是如何工作的? IPNS可以通过多种方式实现,但其当前实现使用分布式哈希表(DHT)。因此,只有每个URI到其相应散列的最新映射可用于解析,忘记任何历史映射。从归档的角度来看,这并不好,因为文件的先前版本可能仍然存在于IPFS存储中,但它们相应的URI映射会丢失。 让我们使用ipns节点模块来了解IPNS记录的发布方式。 上面的代码被评论为足以自我描述......你也可以在这里查看完整的项目。 如果您想深入了解IPFS中的路由如何工作,您可以阅读此主题。我想在帖子中对此进行解释,但还有太多其他有趣的东西需要探索,所以我跳过了它;) 玩IPNS 让我们通过IPNS发布我们的网站。 ipfs名称发布QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB 这可能需要几分钟时间。你会得到这样的输出: 发布到Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy:/ IPF问题/ QmYVd8qstdXtTd1quwv4nJen6XprykxQRLo67Jy7WyiLMB 现在您可以在这里获得最新的网站: https://gateway.pinata.cloud/ipns/Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy 注意:IPNS在大约12小时后忘记(生存时间系统)发布的名称。您可能希望在12小时内运行cron作业以重新发布。 如果我想添加更新的CID,我将使用相同的命令: ipfs name publish <my_new_CID> 您还可以检查链接到您的peerID的当前CID: ipfs名称解析Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy 这将返回最新的CID。 为了增加灵活性,您还可以为不同的内容和/或上下文使用不同的键(如下面的键名称vasa_blog)。例如,我可以使用一个密钥发布我的网站,使用另一个密钥发布我的博客,使用另一个密钥发布我的谈话视频。 ipfs key gen --type = rsa --size = 2048 vasa_blog ipfs name publish --key = vasa_blog <cid_to_my_blog> 这解决了我们上面提到的问题之一(不可变链接的问题)。但链接仍然很难看。要建立链接,我们仍然需要使用DNS。还有其他系统更适合内容寻址系统,如CCN / NDN,XIA。但这些都需要升级互联网本身,如果没有大量需求,这真的很难保证。即使需求量很大,IPv6还没有完全部署:( - 如果没有FIRST建立内容寻址网络的使用,这并没有让我看到NDN / CCN大规模部署在核心中的希望。这意味着终端开发人员(web)开发人员必须能够使用内容寻址网络,在改善底层网络的实质性需求实现之前,非常有效地移动大量数据(视频等)。正如我们所看到的,通过使IPFS可用于终端开发人员,我们可以创造对这些架构的需求。 无论如何,现在,让我们使用DNS来创建可读链接。 DNSLink DNSLink使用DNS TXT记录将域名(如vaibhavsaini.com)映射到IPFS地址。因为您可以编辑DNS记录,所以可以使用它们始终指向IPFS中对象的最新版本(请记住,如果修改对象,IPFS对象的地址会更改)。但我们不希望每次更新我们的网站时都更改TXT记录。所以我们将添加ipns链接而不是ipfs链接。此外,由于DNSLink使用DNS记录,因此它生成的名称通常也很容易键入和读取。 DNSLink地址看起来像IPNS地址,但它使用域名代替散列公钥: /ipns/vaibhavsaini.com 就像普通的IPFS地址一样,它们可以包含指向其他文件的链接: /ipns/vaibhavsaini.com/assets/images 当IPFS客户端或节点尝试解析该地址时,它会查找包含以下内容的TXT记录vaibhavsaini.com: dnslink=/ipfs/<CID for your content here>ORdnslink=/ipns/<hash of public key> 例如,如果您查找vaibhavsaini.comDNS记录,您将看到其DNSLink条目: $ 挖掘+ noall +回答TXT vaibhavsaini.comvaibhavsaini.com。1 IN TXT“dnslink = / ipns / Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy” 基于此,这个地址: /ipns/vaibhavsaini.com/assets/images 会得到你这个块: /ipns/Qmb1VVr5xjpXHCTcVm3KF3i88GLFXSetjcxL7PQJRviXSy/assets/images 超酷! 直到现在我们将地址从复杂哈希减少为可读名称。 但是,我们可以做得更好。 这个(上面的链接)仍然非常混乱,坦率地说,如果我们希望今天的普通Web2用户以最小的努力访问我的分散Web3内容,我们不希望他们必须处理网关和ipns / ipfs前缀如果他们不必。分散的网络社区的一个主要感觉是用户体验不应该改变那么多 - 过渡应该透明但容易 - 这就是分散的网络将如何获胜。理想情况下,我们希望得到这样的结果:https://profile.vaibhavsaini.com...... 通过子域发布 因此,为了使我们的地址更具可读性,我们可以创建一条A记录,将我们的子域指向IPFS对等体的IP地址,监听端口80以获取HTTP请求(例如任何公共IPFS网关,如果您是想)。 但是等等,我们可以比这更好! 因为我们不希望依赖IP地址是静态的,所以我们可以使用CNAME记录指向网关的DNS记录。这样,如果IP地址发生变化,我们仍然会指向正确的位置。遗憾的是,CNAME记录不允许其他记录(如TXT),但IPFS的优秀人员允许我们为IPFS创建DNS TXT记录_dnslink.your.domain。 当您希望提高自动设置的安全性或将对DNSLink记录的控制委派给第三方而不放弃对原始DNS区域的完全控制时,这也很有用。 我正在使用AWS Route53进行DNS设置; 你可以使用任何提供商。 设置CNAME记录
设置_dnslinkTXT记录:
以下是它最终的样子:
还有瞧!我们使用IPFS堆栈托管和解析我们的内容,其地址可供任何Web2用户轻松使用。 您可能会注意到地址栏上的“不安全”警告,这是因为我没有安装通配符证书;) 您可能会注意到网站需要一些时间来解决。这是因为您网站的内容仅在一个节点上。如果您将网站固定在多个节点或其他节点上,尝试访问您的网站(这意味着您的内容很受欢迎),它将更快解决:) —- 编译者/作者:IPFS原力区 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
什么是行星间命名系统
2019-10-09 IPFS原力区 来源:区块链网络
- 上一篇:比特币外强中干 恐难迎转机
- 下一篇:BTC市场来回震荡 进入调整阶段
LOADING...
相关阅读:
- 【抽奖】送CKB,CKB=BTC+ETH2020-08-02
- AMPL 流动资金恢复4500万美元,持币地址到1.9万,越折腾越牛逼2020-08-02
- 小威说币:超18000个地址,持有100万美元比特币,鲸鱼交易2020-08-01
- 哈克·Twitter:一名17岁的少年在佛罗里达州被捕2020-08-01
- 主流币狂欢,上涨是否可持续?2020-08-01