🔦亮點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項目路線圖,其中包含標題功能,這些標題功能按咱們但願它們登錄的順序進行了組織。
路線圖中只標註了較大的功能,指望在路線圖項目之間發佈許多小的錯誤修正!