IPFS技术进展:js-IPFS 0.51.0添加了类型定义并删除了SEC火币网的稳定币有哪些IO


js-IPFS@0.51.0已经从 launchpad 起步,并且正在被传送到您的 node_modules 文件夹,它支持 TypeScript、自定义 DAG 格式和一种新的、更轻便的模块使用方式。

类型

TypeScript 已经席卷了 JS 世界,它允许开发者在他们编码的界面不是他们期望的时候得到提醒,并支持大量有用的工具,比如精确的代码完成和内联文档查看。

已经有几个社区领导了为js-IPFS提供类型信息的工作,但是由于项目进展如此之快,要保持与每个版本中出现的变化的兼容性是一项艰巨的任务。

在js-IPFS@0.51.0中,类型现在是代码库中的一等公民。这个项目还没有转换成 TypeScript,我们不希望 TypeScript 知识成为贡献js-IPFS开发的先决条件,相反,所有类型都是使用 JSDoc 注释定义的,并在开发和持续集成期间构建和验证。

所有的新代码都需要有类型,所以为了帮助贡献者,aegir 最近为 JSDoc 注释添加了更严格的 linting,我们还在js-IPFS中添加了 typecheck github 动作,这样任何错误或缺少的类型都很容易在 PR 中发现。

SECIO 删除

过时的安全传输 SECIO 最终在js-IPFS@0.51.0中被删除。它的继任者 Noise 最初是在js-IPFS@0.47.0中发布的,现在是 libp2p 使用的默认安全传输。

go-IPFS@0.7.0最近也删除了 SECIO 支持,因为go-IPFS@0.6.0中引入了 Noise,这意味着js-IPFS@0.51.0和go-IPFS@0.7.0只能与运行go-IPFS@0.6.0或js-IPFS@0.47.0或更高版本的其他节点通信。

如果您正在运行 IPFS 节点与各种各样的版本需要升级它们go-IPFS@0.6.0和js-IPFS@0.47.0至少,否则你将会失去连通性与其它网络 SECIO 不再是得到同行的支持。自定义 DAG格式

IPFS 的核心是文件,这意味着 UnixFS,而 IPLD 格式则意味着 dag-pb和ipld-raw。

IPFS 使您可以访问所有底层组件,从而允许您使用 dag-cbor 将数据结构连接在一起,并使它们可以通过 libp2p 在 Internet 上进行访问和分发。

但是,如果这些编解码器不符合您的要求,又想开发新的编解码器或使用不太常见的编解码器(如dag-jose)怎么办?

我们并没有将每个可用的编解码器与默认的js-IPFS安装捆绑在一起,因为其中一些会引入很大的依赖树,这将不必要地降低不打算使用它们的人的安装速度。

以前,您可以将自定义 IPLD 格式与ipfs-http-client一起使用,也可以在将IPFS作为应用程序的一部分作为进程内节点运行时使用,但现在您也可以在运行的守护进程中使用它们。

有关如何设置它的更多信息,请参阅js-IPFSrepo 中的新的 custom-ipld-formats 示例。提供新的更轻便的 IPFS

当您使用npm install ipfs时,您将获得核心 ipfs 节点以及用于运行守护进程、HTTP API 服务器和CLI的工具。如果您是在命令行上全局安装它,以便与 IPFS 桌面一起使用,或者只是为了让一个节点在网络上运行,那么这非常好,因为您希望额外的工具能够与您的节点通信。

安装这些工具需要时间,并且会占用硬盘空间,如果您在 js-IPFS 上构建应用程序,则不一定需要它们。

现在可以通过npm install ipfs-core来获得运行进程内节点所需的 IPFS 堆栈部分。由于没有安装所有不需要的额外依赖项,这使得js-IPFS的安装大小减少了一半。

你可以像以前一样使用这个模块,你所需要做的就是更改依赖项名称/版本和更新要求名称:

const IPFS = require('ipfs')asyncfunction () {  const node = await IPFS.create()  node.add(...)  await node.stop()}

对此:

const IPFS = require('ipfs-core')asyncfunction () {  const node = await IPFS.create()  node.add(...)  await node.stop()}

一切就绪!这是尝试使代码库更加模块化,并允许交换组件,并且可能不会一直提取所有内容,从而使高级用户可以创建仅包含所需功能的最小节点。

默认情况下 CORS 是禁用的

跨源资源共享是一种浏览器安全措施,可以防止运行在 web 上被破坏的站点上的恶意 JavaScript 对 api 的未经授权访问。

在0.51.0之前的js-IPFS版本有一个非常宽松的 CORS 设置,允许来自任何地方的请求,尽管这使得针对 API 的开发非常简单,但在安全性方面还有一些不足之处。

从0.51.0开始,CORS 在默认情况下是禁用的,所以如果您计划对 HTTP RPC API 进行请求,那么在启动它之前,您需要将相关的来源和您将使用的方法添加到节点配置中。

有关完整的概述,请参见自述文件的 CORS 部分。新功能

类型检查并从 jsdoc(#3281)(bbcaf34)生成 defs启用 dag put 和 get 的自定义格式(#3347)(3250ff4)支持 Node.js 15(#3339)(66f2081)在 message-port-client 上实现 ipfs.ls(#3322)(f642f1d)webui v2.11.4(#3317)(7f32f7f)

突发的变化

对 SECIO 的支持已经被删除(#3295)(5f5ef7e)默认禁用 CORS(#火币网6月6号转型升级3275)(3ff833d)从 ipfs-core(#3348)删除缓冲区导出(5cc6dfe)

Bug 修复

文件 ls 应该返回字符串(#3352)(16ecc74)修复了“interface-ipfs-core”链接(#3334)(3e7e222)尝试导出未定义的缓冲区(#3312)(5cc6dfe)HTTP 客户端工厂:React Navtive 中的无效 URL(#3331)(4eb196c)在 cli pin add/rm(#3306)中触发无效版本错误(69757f3)在 worker 中加载 ipfs-js 包失败,ReferenceError:窗口未定义(#2349)(3f72e50)

接下来是什么?

查看 js-IPFS 项目路线图,其中包含按我们希望的顺序组织的主要特性。

路线图中只有大的特性被调用,预计在路线图项之间会有很多小的 bug 修复发布!非常感谢所有能够发布此版本的人

@achingbrain(52次提交,33个PR,2个问题,78条评论)@ acolytec3(1次提交,1个PR)@acostalima(2个问题,5条评论)@adamprocter(1个问题,1条评论)@andrew(1条评论)@aphelionz(1个问题,3条评论)@aschmahmann(1条评论)@AuHau(2个问题,4评论)@autonome(1个问题,1条评论)@bconnorwhite(1次提交,1个PR)@bellbind(1个问题,1条评论)@BlackGlory(1条评论)@bluelovers(1次提交,1个PR,3条评论)@chafey(2个问题,1条评论)@chebyte(2条评论)@cindywu(1次提交,1个PR)@ codecov-commenter(2条评论)@ codecov-io(1条评论)@ conr2d(1次提交,1个PR)@daviddias(1条评论)@ DougAnderson444(1条评论)@ duc811997(1个问题)@EthanTheMaster(1次提交,1个PR,1条评论)@gcohler(1个PR,1个问题,2条评论)@georgyo(2个问题)@Gozala(12次提交,15个PR,6个问题,33条评论)@hugomrdias(1条评论)@icidasset(3条评论)@imestin(1次提交,1个PR,1个问题,3条评论)@jacobheun(20次提交,6个PR,4个问题,29条评论)@jakehemmerle(1条评论)@Jonybang(1个问题,1评论)@kottackalsulvin(3个问题,9评论)@lidel(2次提交,3个PR,7条评论)@mburns(1条PR,3条评论)@mcclure(3问题,3评论)@ mh-cbon(2问题,1条评论)@mikeal(1次提交,1个问题,5条评论)@mpetrunic(7次提交,1个PR,1条评论)@negamaxi(2条评论)@ obo20(1条评论)@oed(1个问题,1条评论)@olizilla(1个问题)@onichandame(1问题,3评论)@pepoospina(3条评论)@ rafaelramalho19(1个问题)@RobertFischer(1条评论)@rvagg(5条评论)@rysiekpl(3条评论)@ simonovic86(2个PR,1个问题,7条评论)@stale(9条评论)@StationedInTheField(1个问题,3条评论)@straiforos(1个问题,2条评论)@tabcat(1次提交,1个问题,6条评论)@Tcll(1个问题,4评论)@tniessen(1条评论)@tuyennhv(3次提交,3个PR,1条评论)@ubernaut(1个问题,1条评论)@ vasco-santos(30提交,25 PR,6个问题,42评论)@vmx(11次提交,1个PR,8条评论)@Weedshaker(1条评论)@welcome(17条评论)@wemeetagain(4次提交,1个PR,4条评论)@woss(6条评论)@Xmader(1次提交,1个PR,1条评论)@ Xplorer123(1个问题)@ yfs-2000(1个问题,1条评论)@zebateira(1条评论)@zoernert(1次提交,1个PR,1条评论)

想贡献?

你是否愿意为 IPFS 项目做贡献,但又不知道如何做?嗯,有几个地方你可以开始:

检查 js-IPFS 存储库中help wanted标签的问题加入 IPFS 全员大会,介绍你自己并让我们知道你想在哪里做出贡献:https://github.com/ipfs/teammgmt/#weekly-ipfs-all-Hands用 IPFS 破解并向我们展示您的成就!All Hands 呼叫也是进行演示的理想场所,请加入并向我们展示您创建的内容通过 https://discuss.ipfs.io/加入讨论,并帮助用户找到答案。加入 ipfs 核心实现每周同步,成为行动的一部分!

你有问题吗?

关于 IPFS 的问题、它是如何工作的,以及您可以用它做些什么,最好的地方是在 discuss.ipfs.io。

我们也可以在#ipfsFreenode 上的频道上找到。

End

非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。

FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用:filcloud



返回列表页>>> 比特币