ipfs正舵者js-IPFS 添加类型定义并删除SECIO

2024-09-02 区块链达人

?亮点

输入Defs!没有更多的SECIO!减少您的安装时间!

js-IPFS@0.51.0 已从启动板起飞,并通过TypeScript支持,自定义DAG格式和一种新的,更简便的方式使用模块的方式,移至您的node_modules文件夹

?类型

TypeScript席卷了JS世界,它使开发人员可以在其所针对的接口不符合其预期的情况下得到警告,并可以启用大量有用的工具,例如准确的代码完成和内联文档查看。

已经有几个 社区 领导 的努力,为提供类型信息js-IPFS,但由于该项目移动这么快这是一场艰苦的斗争,以跟上,它们会在每个版本登陆变化的兼容性。

现在,js-IPFS@0.51.0 类型是代码库中的一等公民。该项目到目前为止还没有转换为TypeScript的程度-我们不希望将TypeScript的知识成为促进js-IPFS开发的先决条件,而是使用JSDoc注释定义所有类型,并在开发和持续集成期间构建和验证所有类型。

今后将要求所有新代码都具有类型,以便帮助该aegir最近对JSDoc注释添加更严格的衬里,同时我们还添加了typecheck github操作,js-IPFS以便在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,其手段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作为一个进程节点作为应用程序的一部分,但现在你可以在运行的后台程序使用它们。

请参阅回购中新的custom-ipld-formats示例,以js-IPFS获取有关如何进行设置的更多信息。

?ipfs-core-适用于应用程序作者的新型轻量级IPFS

当您npm install ipfs获得核心IPFS节点以及运行守护程序,HTTP API服务器和CLI的工具时。如果您要全局安装该组件以在命令行上使用以与IPFS Desktop一起使用,或者只是要在网络上运行某个节点,那么这很好,因为您希望额外的工具能够与您的节点进行通信。

这些需要花费一些时间来安装和使用硬盘空间,如果您要在顶部构建应用程序,js-IPFS则不一定需要它们。

现在,您npm install ipfs-core只需获取运行进程内节点所需的IPFS堆栈部分即可。js-IPFS通过不安装所有不需要的额外依赖项,这使安装量大致减少了一半。

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

现在默认情况下禁用CORS

跨源资源共享是一种浏览器安全措施,可防止在网络上受感染网站上运行的恶意JavaScript导致未经授权访问API。

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

从那时0.51.0起,默认情况下将禁用CORS,因此,如果您打算针对HTTP RPC API进行请求,则需要在启动节点配置之前将要使用的相关来源和方法添加到节点配置中。

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

查看js-IPFS项目路线图,其中包含标题功能,这些标题功能按我们希望它们登陆的顺序进行了组织。

路线图中只标注了较大的功能,期望在路线图项目之间发布许多小的错误修正!