IPFS技术进展:js-IPFS 0.51.0添加了类型定义并删除了SECIO

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


类型

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


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


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


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


图1.png


SECIO 删除


过时的安全传输 SECIO 最终在[email protected]中被删除。它的继任者 Noise 最初是在[email protected]中发布的,现在是 libp2p 使用的默认安全传输。


[email protected]最近也删除了 SECIO 支持,因为[email protected]中引入了 Noise,这意味着[email protected][email protected]只能与运行[email protected][email protected]或更高版本的其他节点通信。


如果您正在运行 IPFS 节点与各种各样的版本需要升级它们[email protected][email protected]至少,否则你将会失去连通性与其它网络 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(#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

24小时热点

afd爱发电是什么网站 afd登录入口在哪

为什么需要爱发电? 我们认为,长期耕耘一件事或几件事的创作 ...

1741882

SAN币

fc2是什么网站?fc2点击在此访问

FC2是日本最大的乃至亚洲最大的域名服务商,也是一家全面的网 ...

1969026

币团交易所

gpt4.0中文版免费

GPT-4(生成预可训练技术4.0)是一个由OpenAI开发 ...

3933665

维公链

f2pool鱼池官网

f2pool是一个国际性Premine挖矿池,它是一个早期通 ...

1402030

Smart Contract

地铁派上海地铁俱乐部

海派上海地铁俱乐部是由上海市地铁交通公司(SMTC)所创办的 ...

899952

BitKeep钱包

十大虚拟币交易平台app汇总!

自从前两年比特币大火之后,带动了整个虚拟币行业,虚拟币也越来 ...

1148610

一岛

币圈大佬指出:派币(π币、pi币、pi network、兀币)是个无聊的骗局!

派币(π币、pi币、pi network、兀币)是绝对的杀猪 ...

1123193

中值联资讯

中国十大骗局之pi network(π币、pi币、派币、兀币)

中国十大骗局之pi network(π币、pi币、派币、兀币 ...

652760

Web 3.0

crowd1项目在中国合法吗

crowd1项目在中国合法吗?非常明确的告诉你,这是非法的项 ...

1079933

HitBTC交易所

外汇资金盘“海汇国际”涉嫌传销,已崩盘

近日,海汇国际涉嫌传销,资金盘口缺口达数亿,几乎资金全无,资 ...

943390

Bitget

热点专题

虚拟货币传销/诈骗案件的通常做法

当更多人似懂非懂的对虚拟货币有些模糊的概念,还搞不清比特币和 ...

4225595

瓦特(WBF)交易所

gpt4.0中文版免费

GPT-4(生成预可训练技术4.0)是一个由OpenAI开发 ...

3933665

维公链

iBox 链盒科技

据iBox官方消息,9月17日20:00,iBox将正式发布 ...

3410870

iBox

揭秘网络传销行骗七大套路!

不管网络传销打着什么旗号,戴着什么面具,即便有着“72变”, ...

3055365

A网(AOFEX)交易所

Gem和Genie功能大对比

2022年4月25日,OpenSea官方发推宣布收购NFT交 ...

2395214

TopHolder 头号藏家

Genie 就是一个 NFT 市场的交易聚合器

Web3 中的「聚合器」是一个非常重要的组件,例如 1inc ...

2361268

嗨艺购

一文读懂NFT 交易聚合器GEM

购买 NFT 的主要问题之一在于,限制了用户一次只能购买一个 ...

2321380

第九空间

fc2是什么网站?fc2点击在此访问

FC2是日本最大的乃至亚洲最大的域名服务商,也是一家全面的网 ...

1968787

币团交易所

亚洲最大成人平台“SWAG”网站关停,负责人被捕

2020 年,SWAG 发行了 6.25 亿枚治理代币 SW ...

1749969

NFT和元宇宙

afd爱发电是什么网站 afd登录入口在哪

为什么需要爱发电? 我们认为,长期耕耘一件事或几件事的创作 ...

1741276

SAN币