🔦亮点node
输入Defs!没有更多的SECIO!减小您的安装时间!git
js-IPFS@0.51.0 已从启动板起飞,并经过TypeScript支持,自定义DAG格式和一种新的,更简便的方式使用模块的方式,移至您的node_modules文件夹github
🍪类型web
TypeScript席卷了JS世界,它使开发人员能够在其所针对的接口不符合其预期的状况下获得警告,并能够启用大量有用的工具,例如准确的代码完成和内联文档查看。npm
已经有几个 社区 领导 的努力,为提供类型信息js-IPFS,但因为该项目移动这么快这是一场艰苦的斗争,以跟上,它们会在每一个版本登录变化的兼容性。浏览器
如今,js-IPFS@0.51.0 类型是代码库中的一等公民。该项目到目前为止尚未转换为TypeScript的程度-咱们不但愿将TypeScript的知识成为促进js-IPFS开发的先决条件,而是使用JSDoc注释定义全部类型,并在开发和持续集成期间构建和验证全部类型。安全
从此将要求全部新代码都具备类型,以便帮助该aegir最近对JSDoc注释添加更严格的衬里,同时咱们还添加了typecheck github操做,js-IPFS以便在PR中易于发现任何错误或缺失类型。服务器
SECIO移除网络
该过期的安全运输SECIO终于被去掉js-IPFS@0.51.0。它的后继者,Noise首次发布,js-IPFS@0.47.0如今是libp2p使用的默认安全传输。数据结构
go-IPFS@0.7.0最近在噪音引入后也被删除SECIO支持go-IPFS@0.6.0,其手段js-IPFS@0.51.0和go-IPFS@0.7.0只能跟其余节点上运行go-IPFS@0.6.0或js-IPFS@0.47.0以上版本。
若是您使用的是不一样范围的版本运行IPFS节点你要他们所有升级到go-IPFS@0.6.0或更高版本,并js-IPFS@0.47.0在最低限度,不然,你将开始与网络的其他部分将失去链接为SECIO中止对同行的支持。
📌自定义DAG格式
IPFS的核心是文件,这意味着UnixFS,而IPLD格式则意味着dag-pb和ipld-raw。
IPFS使您能够访问全部底层组件,从而容许您使用dag-cbor将数据结构链接在一块儿,并使它们能够经过libp2p在Internet上进行访问和分发。
可是,若是这些编解码器不符合您的要求,又想开发新的编解码器或使用不太常见的编解码器(如dag-jose)怎么办?
咱们不会将每一个可用的编解码器都与默认js-IPFS安装捆绑在一块儿,由于其中一些会引入大型依赖树,这对于没必要要使用它们的人来讲会没必要要地减慢安装速度。
之前,你已经可以使用自定义的IPLD格式与ipfs-http-client运行时ipfs做为一个进程节点做为应用程序的一部分,但如今你能够在运行的后台程序使用它们。
请参阅回购中新的custom-ipld-formats示例,以js-IPFS获取有关如何进行设置的更多信息。
🍏ipfs-core-适用于应用程序做者的新型轻量级IPFS
当您npm install ipfs得到核心IPFS节点以及运行守护程序,HTTP API服务器和CLI的工具时。若是您要全局安装该组件以在命令行上使用以与IPFS Desktop一块儿使用,或者只是要在网络上运行某个节点,那么这很好,由于您但愿额外的工具可以与您的节点进行通讯。
这些须要花费一些时间来安装和使用硬盘空间,若是您要在顶部构建应用程序,js-IPFS则不必定须要它们。
如今,您npm install ipfs-core只需获取运行进程内节点所需的IPFS堆栈部分便可。js-IPFS经过不安装全部不须要的额外依赖项,这使安装量大体减小了一半。
您能够像之前同样使用模块,只需更改依赖项名称/版本并更新需求名称便可:
'ipfs')
async function () {
const node = await IPFS.create()
node.add(...)
await node.stop()
}
对此:
const IPFS = require('ipfs-core')
async function () {
const node = await IPFS.create()
node.add(...)
await node.stop()
}
一切就绪!这是尝试使代码库更加模块化,并容许交换组件,而且可能不会一直提取全部内容,从而使高级用户能够建立仅包含所需功能的最小节点。观看此空间了解更多!
如今默认状况下禁用CORS
跨源资源共享是一种浏览器安全措施,可防止在网络上受感染网站上运行的恶意JavaScript致使未经受权访问API。
js-IPFS以前的版本0.51.0具备很是宽松的CORS设置,容许来自任何地方的请求,尽管这使得针对API的开发很是简单,但在安全性方面却有一些不足之处。
从那时0.51.0起,默认状况下将禁用CORS,所以,若是您打算针对HTTP RPC API进行请求,则须要在启动节点配置以前将要使用的相关来源和方法添加到节点配置中。
有关完整的概述,请参见自述文件的CORS部分。
✨新功能
- 从jsdoc输入检查并生成定义(#3281)(bbcaf34)
- 为dag put和get(#3347)(3250ff4)启用自定义格式
- Node.js 15支持(#3339)(66f2081)
- 在message-port-client(#3322)(f642f1d)上实现ipfs.ls
- webui v2.11.4(#3317)(7f32f7f)
changes重大变化
- 对SECIO的支持已删除(#3295)(5f5ef7e)
- 默认状况下禁用CORS(#3275)(3ff833d)
- 从ipfs-core(#3348)(5cc6dfe)删除缓冲区导出
🕷️bug修复
- 文件ls应该返回字符串(#3352)(16ecc74)
- 修复了“ interface-ipfs-core”连接(#3334)(3e7e222)
- 包/ipfs-core/src/index.js尝试导出未定义的缓冲区(#3312)(5cc6dfe)
- HTTP客户端工厂:React Navtive(#3331)(4eb196c)中的URL无效
- cli引脚添加/ rm(#3306)(69757f3)中触发了无效的版本错误
- 在worker中加载ipfs-js捆绑失败,并出现ReferenceError:未定义窗口(#2349)(3f72e50)
🗺️接下来是什么?
查看js-IPFS项目路线图,其中包含标题功能,这些标题功能按咱们但愿它们登录的顺序进行了组织。
路线图中只标注了较大的功能,指望在路线图项目之间发布许多小的错误修正!
😍很是感谢全部可以发布此版本的人
@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/team-mgmt/#weekly-ipfs-all-hands
- 用IPFS破解并向咱们展现您的成就!All Hands呼叫也是进行演示的理想场所,请加入并向咱们展现您建立的内容
- 经过https://discuss.ipfs.io/加入讨论,并帮助用户找到答案。
- 加入🚀IPFS核心实施每周同步🛰,并参与其中!
🗺️接下来是什么?
查看js-IPFS项目路线图,其中包含标题功能,这些标题功能按咱们但愿它们登录的顺序进行了组织。
路线图中只标注了较大的功能,指望在路线图项目之间发布许多小的错误修正!