亮点
可取消的请求和新的浏览器数据存储
[email protected]已经推出,支持取消请求,为浏览器提供更精简、更有效的数据存储!
亮点
可取消的请求
用户应该能够取消长期存在的异步 API 操作。例如,如果您要从网络中获取 CID 的内容,并且该 CID 无法解析,则您应该能够为请求设置超时值,此后将不再寻找该内容并返回控制权错误代码,描述发生了什么。
这并不像JavaScript中那样简单明了,因为从API调用返回了一个Promise来解析一段内容,并且Promises规范不包含任何有关取消Promise的内容。
但是,浏览器访存 API 具有 AbortSignal 的概念,可用于中止 Web 请求。它们通过 AbortController 进行交互:
我们采用了这种方法并将其集成到每个 API 调用中,因此您现在可以使用 AbortControllers 取消请求!我们还使用了这种机制来timeout为每个 API 调用添加一个选项,该 API 内部使用 AbortSignal 来停止请求,并在指定的时间后抛出 TimeoutError:
AbortSignal 一直从调用堆栈一直传递到支持 IPFS 的 libp2p 和 ipld 组件。在此初始发行版中,IPFS 层支持超时,而在以后的发行版中,libp2p 和 ipld 还将使用 AbortSignal 释放资源,并执行任何其他必要的清理,如果请求成功完成,则会执行这些清理。
新的浏览器数据存储
[email protected]将新的数据存储区带到浏览器。在浏览器中,所有块和其他回购数据当前都存储在IndexedDB中,因为这是在写入时持久和查询大量用户数据的唯一方法。
在 node 和 go-ipfs 中,LevelDB 一直是应用程序数据的首选数据存储(尽管块已存储在文件系统中),并且 go-IPFS 移至 Badger。
在这个扩展的接口数据存储中,这是一种用于存储由 IPFS 使用的数据存储实现的键/值对的规范。在浏览器中,这是由 level-js 支持的数据存储级别,而后者由 IndexedDB 支持。
为了在此处删除几层,我们创建了 datastore-idb 来实现接口数据存储规范,该规范由 IndexedDB 支持,而无需经过级别。
新的数据存储区更小,更快,并且升级是无缝的,因为它仍然处于 IndexedDB 的幕后:
新功能
修正错误
-
修复浏览器脚本标签示例(#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 上的频道上找到。
非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。
FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用