IPFS技术进展:js-ipfs 0.44.0发布

亮点

可取消的请求和新的浏览器数据存储js-IPFS@0.44.0已经推出,支持取消请求,为浏览器提供更精简、更有效的数据存储!

可取消的请求

用户应该能够取消长期存在的异步 API 操作。例如,如果您要从网络中获取 CID 的内容,并且该 CID 无法解析,则您应该能够为请求设置超时值,此后将不再寻找该内容并返回控制权错误代码,描述发生了什么。这并不像JavaScript中那样简单明了,因为从API调用返回了一个Promise来解析一段内容,并且Promises规范不包含任何有关取消Promise的内容。但是,浏览器访存 API 具有 AbortSignal 的概念,可用于中止 Web 请求。它们通过 AbortController 进行交互:

IPFS技术进展:js-ipfs 0.44.0发布

我们采用了这种方法并将其集成到每个 API 调用中,因此您现在可以使用 AbortControllers 取消请求!我们还使用了这种机制来timeout为每个 API 调用添加一个选项,该 API 内部使用 AbortSignal 来停止请求,并在指定的时间后抛出 TimeoutError:

AbortSignal 一直从调用堆栈一直传递到支持 IPFS 的 libp2p 和 ipld 组件。在此初始发行版中,IPFS 层支持超时,而在以后的发行版中,libp2p 和 ipld 还将使用 AbortSignal 释放资源,并执行任何其他必要的清理,如果请求成功完成,则会执行这些清理。

新的浏览器数据存储

js-IPFS@0.44.0将新的数据存储区带到浏览器。在浏览器中,所有块和其他回购数据当前都存储在IndexedDB中,因为这是在写入时持久和查询大量用户数据的唯一方法。在 node 和 go-ipfs 中,LevelDB 一直是应用程序数据的首选数据存储(尽管块已存储在文件系统中),并且 go-IPFS 移至 Badger。在这个扩展的接口数据存储中,这是一种用于存储由 IPFS 使用的数据存储实现的键/值对的规范。在浏览器中,这是由 level-js 支持的数据存储级别,而后者由 IndexedDB 支持。为了在此处删除几层,我们创建了 datastore-idb 来实现接口数据存储规范,该规范由 IndexedDB 支持,而无需经过级别。这是什么意思?新的数据存储区更小,更快,并且升级是无缝的,因为它仍然处于 IndexedDB 的幕后:

IPFS技术进展:js-ipfs 0.44.0发布

新功能

可取消的 API 调用(#2993)(2b24f59),关闭#3015ipfs.block.put现在接受pin符合 go-ipfs#3015 的参数

修正错误

修复浏览器脚本标签示例(#3034)(ee8b769),关闭#3027不再在浏览器中生成具有所有 IPLD 格式的浏览器捆绑包(#3025)(e6079c1)typeof 将超时传递给 dag.get 的错误(#3035)(026a542)删除对节点全局变量和内置插件的使用,以为我们为浏览器捆绑程序自动停止包含它们 而做的准备#2932源地图不再包含在生产版本ipfs / aegir#549中

接下来是什么?

查看 js-ipfs 项目路线图,其中包含按我们希望其着陆顺序排列的标题功能。路线图中只标注了较大的功能,期望在路线图项目之间发布许多小的错误修正!

非常感谢所有能够发布此版本的人

@ 5310(2条评论)@achingbrain(55次提交,17个PR,3个问题,33条评论)@alanshaw(1问题,3评论)@aphelionz(2条评论)@AuHau(1条评论)@autonome(1条评论)@bertrandfalguiere(1条评论)@betamos(1个PR,1个问题,7条评论)@bluelovers(1 PR,1条评论)@carsonfarmer(1次提交)@ codecov-io(1条评论)@corporatepiyush(1期)@dapplion(2条评论)@dirkmc(2次提交)@Gozala(5个问题,15条评论)@hugomrdias(11提交,4 PR,1问题,17评论)@jacobheun(8提交,2 PR,1问题,8评论)@jakehemmerle(3条评论)@koivunej(1条评论)@lidel(1次提交,2条评论)@mdtanrikulu(1问题,1条评论)@mistakia(1个公关)@npfoss(1次提交,1个PR,1个问题)@ obo20(1次提交,1个PR,1条评论)@oed(1条评论)@RobertFischer(1条评论)@robertkiel(1条评论)@rvagg(1个PR,1条评论)@ spasimir21(1问题,3评论)@stensonb(1次提交,13个PR)@thattommyhall(1 PR,3条评论)@ typhu-xyz(1条评论)@ vasco-santos(14次提交,15个PR,2个问题,16条评论)@vmx(5提交,1 PR,2评论)@welcome(19条评论)@wemeetagain(2次提交,1个PR,3条评论)

参与贡献

您想为IPFS项目做贡献,又不知道如何做吗?好吧,有几个地方可以开始使用:

检查 js-ipfs 存储库中help wanted标签的问题加入 IPFS 的“全力以赴”,自我介绍,并让我们知道您想在哪里做出贡献: https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands破解 IPFS,向我们展示您的成就!All Hands 呼叫也是进行演示的理想场所,请加入并向我们展示您创建的内容通过 https://discuss.ipfs.io/ 加入讨论,并帮助用户找到答案。加入 IPFS 核心实施每周同步,并参与其中!

你有问题吗?

最好的地方要问你关于IPFS的问题,它是如何工作的,以及你可以用它做的是在 discuss.ipfs.io。我们也可以在#ipfs Freenode 上的频道上找到。

End

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

#专栏作家#

本文来自人人都懂区块链专栏作家filcloud,公众号:filcloud。帮你透视浩瀚的IPFS数字世界。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
   
验证码:
微信号已复制,请打开微信添加咨询详情!