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

FilCloud 2020-05-26

亮点

可取消的请求和新的浏览器数据存储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),关闭#3015
  • ipfs.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数字世界。

来源链接
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表云骑士的观点或立场
上一篇:两会热点:比特币作为遗产继承受法律保护?详解来龙去脉 下一篇:煤电垄断政策出台 新疆矿业或受负面影响 电费将上涨