技术指南 | 行使Node.Js构建IPFS行使程序 | BTC

来源:https://tinyletter.com/ipfsnewsletter/letters/ipfs-weekly-70

翻译:星际大陆 介绍 IPFS是转折游玩规则的存在。与当今的网络相逆,IPFS实际上能够实现分布式的长期性网络。最主要的是,它能够是走星际的,这对于吾们现在的客户端-服务器体系组织是十足不能够的。IPFS行使对等架构,其中每个节点既是客户端又是服务器。倘若您从网络乞求某些内容,则将您乞求的内容挑供给其他节点。

您能够将其视为一个重大的BitTorrent群。

除了点对点体系组织,吾们在IPFS上检索内容的手段也是革命性的。吾们不是经过内容的位置即IP地址来标识内容,而是经过对内容自己进走散列创建的唯一标识符来标识内容。这称为内容寻址。出于以下几个因为,这专门有用: 数据持久性。倘若很众同走拥有您想要的内容,您将从最挨近的同走那里获得。即使内容的原首上载者脱机了,但由于它是按内容寻址的,所以您很有能够仍会获得它。与当今的Web相比,倘若服务器展现故障,则内容随之缩短,这是一个很大的挺进。 内置坦然性。由于内容标识符(CID)是经过对内容自己进走哈希处理而创建的,所以您首终能够确保十足获得所需的内容。无法欺骗体系,由于倘若您修改内容,其标识符将随之转折。 入门 在最先之前,吾想先解决一些题目。IPFS客户端有两栽实现,一栽在JavaScript中,另一栽在Go中。JavaScript在这边犹如是最益的选择,但由于它处于比Go客户端更早的开发状态,所以这不是最佳选择。吾们将行使Go客户端,并经过其API与Node连接。 先决条件: Node.js(最益是更高版本之一)和npm go-ipfs客户端(此处的安设表明) 邮递员或curl,用于向吾们的REST API发出乞求 最先,吾们的节点必须以在线模式运走,所以掀开一个终端并运走ipfs daemon。您答该会望到以下内容:

 在第19走,您能够望到API服务器正在侦听端口5001。这是吾们必要连接的端口。

其次,创建一个新的项现在现在录并运走npm install ipfs-http-client。这是吾们必要连接到正在运走的IPFS节点的柔件包。 接下来,让吾们创建js文件,在该文件中吾们将连接到节点:

 在第3走,吾们实际上连接到守护程序API服务器。现在,吾们能够最先在ipfs对象上实走命令以与网络交互。

行为示例,让吾们编写一个向IPFS增补一些文本的函数:

 

在第1走上,吾们创建一个要增补到IPFS的对象。这path是吾们期待在IPFS上调用文件的内容(吾们能够包括现在录),内容是Buffer吾们要增补的文件的内容(在本例中为纯文本)。接下来,吾们行使将该文件增补到ipfs中ipfs.add(),这将返回一个包含所有增补文件的数组。由于吾们只增补了一个,所以的效果console.log()将是:

倘若不息进走,您会发现该hash字段每次都会十足相通,由于您增补了与吾相通的内容。另表,请仔细,该path名称不会影响内容标识符。倘若现在要检索内容,则有两栽能够性: 像云云行使本地网关服务器: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路线:

现在,吾们能够与邮递员一首测试这条路线。为创建新的POST乞求http://localhost:3000/upload。您能够选择放入正文中的内容,但必须为JSON:

 

倘若总共顺当,您答该已经得到吾的答复以及Express行使程序的一些终端输出:{ path: 'postman request', content: 'postman says whassup' }。由于吾们行使JSON中间件,所以req.body被解析为JS对象,这已经是吾们必要向IPFS增补内容的格式。让吾们经过修改和调用函数来扩展addFile功能,然后经过公共网关返回指向增补文件的链接:

 

在addFile()上线8,吾们采取的req.body数据行为参数,并用它来增补IPFS。然后fileHash,吾们返回,以便将其包含在行为反答发送回的链接中。倘若现在吾们对邮递员发出另一个POST乞求:

 吾们返回一个链接以在公共网关上查望吾们的文件!请仔细,由于公共网关的速度能够很慢,所以实际上能够必要一段时间才能添载此链接。

posted on 2020-09-12  作者:admin  阅读量:

栏目导航

Powered by 118彩图库 @2018 RSS地图 html地图