🔦亮點
輸入Defs!沒有更多的SECIO!減少您的安裝時間!
[email protected] 已從啟動板起飛,並透過TypeScript支援,自定義DAG格式和一種新的,更簡便的方式使用模組的方式,移至您的node_modules資料夾
🍪型別
TypeScript席捲了JS世界,它使開發人員可以在其所針對的介面不符合其預期的情況下得到警告,並可以啟用大量有用的工具,例如準確的程式碼完成和內聯文件檢視。
已經有幾個 社羣 領導 的努力,為提供型別資訊js-IPFS,但由於該專案移動這麼快這是一場艱苦的鬥爭,以跟上,它們會在每個版本登陸變化的相容性。
現在,[email protected] 型別是程式碼庫中的一等公民。該專案到目前為止還沒有轉換為TypeScript的程度-我們不希望將TypeScript的知識成為促進js-IPFS開發的先決條件,而是使用JSDoc註釋定義所有型別,並在開發和持續整合期間構建和驗證所有型別。
今後將要求所有新程式碼都具有型別,以便幫助該aegir最近對JSDoc註釋新增更嚴格的襯裡,同時我們還新增了typecheck github操作,js-IPFS以便在PR中易於發現任何錯誤或缺失型別。
SECIO移除
該過時的安全運輸SECIO終於被去掉[email protected]。它的後繼者,Noise首次釋出,[email protected]現在是libp2p使用的預設安全傳輸。
[email protected]最近在噪音引入後也被刪除SECIO支援[email protected],其手段[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作為一個程序節點作為應用程式的一部分,但現在你可以在執行的後臺程式使用它們。
請參閱回購中新的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進行請求,則需要在啟動節點配置之前將要使用的相關來源和方法新增到節點配置中。