IPFS官方——js-ipfs 0.44.0版本发布

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:

 

IPFS官方——js-ipfs 0.44.0版本发布 
你也可以自己滚动:

 

IPFS官方——js-ipfs 0.44.0版本发布 

AbortSignal会一路向下传递给支持IPFS的libp2p和ipld组件。在这个初始版本中,IPFS层支持超时,而在未来的版本中,libp2p和ipld将使用AbortSignal来释放资源,并执行任何其他必要的清理工作,如果请求成功完成,则会进行其他必要的清理。

 

 

新的浏览器数据存储

 

js-IPFS@0.44.0给浏览器带来了一个新的数据存储库。在浏览器中,目前所有的块和其他repo数据都存储在IndexedDB中,因为在编写时,这是唯一可用来持久化和查询大量用户数据的方式。
在node和go-ipfs中,LevelDB一直是应用数据的首选数据存储体(虽然块已经存储在文件系统中),而go-IPFS也在向Badger转移。
从此,接口数据存储库(interface-datastore)应运而生的一种存储键/值对的规范,由IPFS使用的数据存储库实现。在浏览器中,这是datastore级的,由level-js支持,而后由indexedDB支持。
为了去除一些层,我们创建了datastore-idb,它实现了接口-datastore规范,由IndexedDB支持,而不通过level。
这意味着什么?
新的datastore更小,速度更快,而且升级是无缝的,因为它的引擎盖下仍然是IndexedDB:

 

IPFS官方——js-ipfs 0.44.0版本发布 

 

新功能

 

可取消API调用 (#2993) (2B24F59), 关闭#3015
ipfs.block.put现在接受pin参数,与go-ipfs #3015一致

 

 

fixed修正的错误

 

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

 

 

下一步是什么?

 

请看 js-ipfs 项目路线图(https://github.com/orgs/ipfs/projects/6),其中包含了我们希望的头条功能,按照我们希望它们落地的顺序排列。
路线图中只列出了大的功能,预计在路线图项目之间会有很多小的bug修复版本。
衷心感谢每一位为本次发布提供帮助的人。

 

 

想捐款吗?

 

你想为IPFS项目做贡献,但不知道怎么做?那么,有几个地方可以让你开始:
检查js-ipfs存储库中help wanted标签的问题
加入IPFS万能手游,介绍一下自己,让我们知道你想投稿的地方:https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
破解IPFS,让我们看看你做了什么! All Hands call也是一个完美的演示场所,加入进来,让我们看看你做了什么
加入讨论https://discuss.ipfs.io/,帮助用户找到自己的答案。
加入IPFS核心实现每周同步(https://github.com/ipfs/team-mgmt/issues/992),参与到行动中来!

免责声明:本内容来自互联网公开内容,不代表BitChina.Net立场,BitChina.Net也不负相关法律责任,如若转载,请注明出处:http://www.bitchina.net/archives/2534

联系我们

邮件:aliyinhang@gmail.com