IPFS是一个游戏改变者。与当今的web相比,IPFS实际上可以实现一个分布式的、永久的web。 IPFS利用点对点架构,其中每个节点既是客户端又是服务器。 如果您从网络请求某些内容,则将您...
本文标题使用Node.Js构建IPFS应用程序,作者:知世,本文有1101个文字,大小约为5KB,预计阅读时间3分钟,请您欣赏。知世金融网众多优秀文章,如果想要浏览更多相关文章,请使用网站导航的搜索进行搜索。本站虽然不乏优秀之作,但仅作为投资者学习参考。
IPFS是一个游戏改变者。与当今的web相比,IPFS实际上可以实现一个分布式的、永久的web。 IPFS利用点对点架构,其中每个节点既是客户端又是服务器。 如果您从网络请求某些内容,则将您请求的内容提供给其他节点。
除了点对点体系结构,我们在IPFS上检索内容的方式也是革命性的。我们不是通过内容的位置即IP地址来标识内容,而是通过对内容本身进行散列创建的唯一标识符来标识内容。这称为内容寻址。出于以下几个原因,这非常有用:
· 数据持久性。 如果许多同行拥有您想要的内容,您将从最接近的同行那里获得。即使内容的原始上载者已脱机,但由于内容已寻址,因此您很有可能仍会获得它。与今天的web相比,如果服务器宕机,内容也随之宕机,这是一个很大的改进。
· 内置安全性。由于内容标识符(CID)是通过对内容本身进行哈希处理而创建的,因此您始终可以确保完全获得所需的内容。无法欺骗系统,因为如果您修改内容,其标识符将随之改变。
准备入门
在开始之前,我想先解决一些问题。IPFS客户端有两种实现,一种在JavaScript,另一种在Go。在这里,JavaScript似乎是最好的选择,但是由于它处于比Go客户端更早的开发状态,因此这不是最佳选择。我们将使用Go客户端,并通过其API与Node连接。
先决条件:
1. Node.js(最好是更高版本之一)和npm
2. go-ipfs客户端
3. postman或curl,用于向我们的REST API发出请求
首先,我们的节点必须以在线模式运行,因此打开一个终端并运行ipfs daemon。您应该会看到以下内容:
在第19行,您可以看到API服务器正在侦听端口5001。这是我们需要连接的端口。
其次,创建一个新的项目目录并运行npm install ipfs-http-client。这是我们需要连接到正在运行的IPFS节点的软件包。
接下来,让我们创建js文件,在该文件中我们将连接到节点:
在第3行上,我们实际上连接到守护程序API服务器。现在,我们可以开始在ipfs对象上执行命令以与网络交互。
举例来说,让我们编写一个向IPFS添加一些文本的函数:
在第1行上,我们创建一个要添加到IPFS的对象。路径是我们希望在IPFS上调用文件的路径(可以包含目录),内容是我们要添加的文件的Buffer(在这种情况下,只是纯文本)。接下来,我们使用ipfs.add()将文件添加到ipfs中,这将返回包含所有已添加文件的数组。因为我们只添加了一个,所以console.log()的结果将是:
如果继续进行,您会发现哈希字段每次都会完全相同,因为您添加了与我相同的内容。另外请注意,路径名不会影响内容标识符。如果现在要检索内容,则有两种可能性:
· 使用您的本地网关服务器:http//localhost:8080/ipfs/QmWfVY9y3xjsixTgbd9AorQxH7VtMpzfx2HaWtsoUYecaX
· 网关服务器由您的IPFS守护进程启动。使用公共网关:https://gateway.ipfs.io/ipfs/QmWfVY9y3xjsixTgbd9AorQxH7VtMpzfx2HaWtsoUYecaX
所有这些都已经很酷了,但让我们看看如何在应用程序中使用它。为了演示更多功能,让我们使用Express创建一个小的REST API。
构建应用程序
不要忘记运行npm install express。
让我们从一些样板代码开始:
继续运行它,并用curl http://localhost:3000 其进行测试。您应该看到 Welcome to my IPFS app。
现在添加一条POST路线:
现在,我们可以与postman一起测试这条路线。创建一个新的POST请求到http:// localhost:3000 / upload。 您可以选择放入正文中的内容,但必须为JSON:
如果一切顺利,您应该已经得到响应,并且从Express应用程序获得了一些终端输出:{path:'postman request',content:'postman said whassup'}。由于我们使用JSON中间件,因此req.body被解析为JS对象,这已经是我们需要向IPFS添加内容的格式。让我们通过修改和调用addFile函数扩展功能,然后通过公共网关返回指向已添加文件的链接:
在第8行的addFile()中,我们将req.body数据作为参数并将其添加到IPFS。然后,我们返回fileHash,以便可以将其包含在作为响应发送回的链接中。如果现在我们对邮递员发出另一个POST请求:
我们返回一个链接以在公共网关上查看我们的文件! 请注意,由于公共网关的速度可能很慢,因此实际上可能需要一段时间才能加载此链接。
本文相关推荐: Web应用程序和云计算分析
以上便是知世金融网给大家分享的关于使用Node.Js构建IPFS应用程序/qkl/28561.html的相关信息了,希望能帮助到大家,更多金融相关信息,敬请关注知世金融网!
网站内容均来自互联网,如侵害您的利益联系客服进行删除!
上一篇:揭秘去中心化 ID(一)
本文标题:使用Node.Js构建IPFS应用程序
本文地址:/index.php?s=article&c=search&keyword=%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F