首页 > 世链号 > IPFS技术最新消息:js-IPFS 0.51.0添加类型定义并删除了SECIO
星际联盟  

IPFS技术最新消息:js-IPFS 0.51.0添加类型定义并删除了SECIO

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

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的安装大小减少了一半。

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

默认情况下 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(#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 修复发布!

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。