[email protected]已經從 launchpad 起步,並且正在被傳送到您的 node_modules 資料夾,它支援 TypeScript、自定義 DAG 格式和一種新的、更輕便的模組使用方式。
型別
TypeScript 已經席捲了 JS 世界,它允許開發者在他們編碼的介面不是他們期望的時候得到提醒,並支援大量有用的工具,比如精確的程式碼完成和內聯文件檢視。
已經有幾個社羣領導了為js-IPFS提供型別資訊的工作,但是由於專案進展如此之快,要保持與每個版本中出現的變化的相容性是一項艱鉅的任務。
在[email protected]中,型別現在是程式碼庫中的一等公民。這個專案還沒有轉換成 TypeScript,我們不希望 TypeScript 知識成為貢獻js-IPFS開發的先決條件,相反,所有型別都是使用 JSDoc 註釋定義的,並在開發和持續整合期間構建和驗證。
所有的新程式碼都需要有型別,所以為了幫助貢獻者,aegir 最近為 JSDoc 註釋新增了更嚴格的 linting,我們還在js-IPFS中新增了 typecheck github 動作,這樣任何錯誤或缺少的型別都很容易在 PR 中發現。
SECIO 刪除
過時的安全傳輸 SECIO 最終在[email protected]中被刪除。它的繼任者 Noise 最初是在[email protected]中釋出的,現在是 libp2p 使用的預設安全傳輸。
[email protected]最近也刪除了 SECIO 支援,因為[email protected]中引入了 Noise,這意味著[email protected]和[email protected]只能與執行[email protected]或[email protected]或更高版本的其他節點通訊。
如果您正在執行 IPFS 節點與各種各樣的版本需要升級它們[email protected]和[email protected]至少,否則你將會失去連通性與其它網路 SECIO 不再是得到同行的支援。
自定義 DAG 格式
IPFS 的核心是檔案,這意味著 UnixFS,而 IPLD 格式則意味著 dag-pb和ipld-raw。
IPFS 使您可以訪問所有底層元件,從而允許您使用 dag-cbor 將資料結構連線在一起,並使它們可以透過 libp2p 在 Internet 上進行訪問和分發。
但是,如果這些編解碼器不符合您的要求,又想開發新的編解碼器或使用不太常見的編解碼器(如dag-jose)怎麼辦?
我們並沒有將每個可用的編解碼器與預設的js-IPFS安裝捆綁在一起,因為其中一些會引入很大的依賴樹,這將不必要地降低不打算使用它們的人的安裝速度。
以前,您可以將自定義 IPLD 格式與ipfs-http-client一起使用,也可以在將IPFS作為應用程式的一部分作為程序內節點執行時使用,但現在您也可以在執行的守護程序中使用它們。
有關如何設定它的更多資訊,請參閱js-IPFSrepo 中的新的 custom-ipld-formats 示例。
提供新的更輕便的 IPFS
當您使用npm install ipfs時,您將獲得核心 ipfs 節點以及用於執行守護程序、HTTP API 伺服器和CLI的工具。如果您是在命令列上全域性安裝它,以便與 IPFS 桌面一起使用,或者只是為了讓一個節點在網路上執行,那麼這非常好,因為您希望額外的工具能夠與您的節點通訊。
安裝這些工具需要時間,並且會佔用硬碟空間,如果您在 js-IPFS 上構建應用程式,則不一定需要它們。
現在可以透過npm install ipfs-core來獲得執行程序內節點所需的 IPFS 堆疊部分。由於沒有安裝所有不需要的額外依賴項,這使得js-IPFS的安裝大小減少了一半。
你可以像以前一樣使用這個模組,你所需要做的就是更改依賴項名稱/版本和更新要求名稱:
const IPFS = require()
asyncfunction () { const node = await IPFS.create()
node.add(...)
await node.stop()}
對此:
const IPFS = require()
asyncfunction () { const node = await IPFS.create()
node.add(...)
await node.stop()}
一切就緒!這是嘗試使程式碼庫更加模組化,並允許交換元件,並且可能不會一直提取所有內容,從而使高階使用者可以建立僅包含所需功能的最小節點。
預設情況下 CORS 是禁用的
跨源資源共享是一種瀏覽器安全措施,可以防止執行在 web 上被破壞的站點上的惡意 JavaScript 對 api 的未經授權訪問。
在0.51.0之前的js-IPFS版本有一個非常寬鬆的 CORS 設定,允許來自任何地方的請求,儘管這使得針對 API 的開發非常簡單,但在安全性方面還有一些不足之處。
從0.51.0開始,CORS 在預設情況下是禁用的,所以如果您計劃對 HTTP RPC API 進行請求,那麼在啟動它之前,您需要將相關的來源和您將使用的方法新增到節點配置中。
有關完整的概述,請參見自述檔案的 CORS 部分。
新功能
型別檢查並從 jsdoc(#3281)(bbcaf34)生成 defs
啟用 dag put 和 get 的自定義格式(#3347)(3250ff4)
支援 Node.js 15(#3339)(66f2081)
在 message-port-client 上實現 ipfs.ls(#3322)(f642f1d)
webui v2.11.4(#3317)(7f32f7f)
突發的變化
對 SECIO 的支援已經被刪除(#3295)(5f5ef7e)
預設禁用 CORS(#3275)(3ff833d)
從 ipfs-core(#3348)刪除緩衝區匯出(5cc6dfe)
Bug 修復
檔案 ls 應該返回字串(#3352)(16ecc74)
修復了“interface-ipfs-core”連結(#3334)(3e7e222)
嘗試匯出未定義的緩衝區(#3312)(5cc6dfe)
HTTP 客戶端工廠:React Navtive 中的無效 URL(#3331)(4eb196c)
在 cli pin add/rm(#3306)中觸發無效版本錯誤(69757f3)
在 worker 中載入 ipfs-js 包失敗,ReferenceError:視窗未定義(#2349)(3f72e50)
接下來是什麼?
檢視 js-IPFS 專案路線圖,其中包含按我們希望的順序組織的主要特性。
路線圖中只有大的特性被呼叫,預計在路線圖項之間會有很多小的 bug 修復釋出!
非常感謝所有能夠釋出此版本的人
@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/teammgmt/#weekly-ipfs-all-Hands
用 IPFS 破解並向我們展示您的成就!All Hands 呼叫也是進行演示的理想場所,請加入並向我們展示您建立的內容
透過 https://discuss.ipfs.io/加入討論,並幫助使用者找到答案。
加入 ipfs 核心實現每週同步,成為行動的一部分!