亮點
可取消的請求和新的瀏覽器資料儲存 [email protected]已經推出,支援取消請求,為瀏覽器提供更精簡、更有效的資料儲存!
可取消的請求
使用者應該能夠取消長期存在的非同步 API 操作。例如,如果您要從網路中獲取 CID 的內容,並且該 CID 無法解析,則您應該能夠為請求設定超時值,此後將不再尋找該內容並返回控制權錯誤程式碼,描述發生了什麼。
這並不像JavaScript中那樣簡單明瞭,因為從API呼叫返回了一個Promise來解析一段內容,並且Promises規範不包含任何有關取消Promise的內容。
但是,瀏覽器訪存 API 具有 AbortSignal 的概念,可用於中止 Web 請求。它們透過 AbortController 進行互動:
我們採用了這種方法並將其整合到每個 API 呼叫中,因此您現在可以使用 AbortControllers 取消請求!我們還使用了這種機制來timeout為每個 API 呼叫新增一個選項,該 API 內部使用 AbortSignal 來停止請求,並在指定的時間後丟擲 TimeoutError:
您也可以自己滾動:
AbortSignal 一直從呼叫堆疊一直傳遞到支援 IPFS 的 libp2p 和 ipld 元件。在此初始發行版中,IPFS 層支援超時,而在以後的發行版中,libp2p 和 ipld 還將使用 AbortSignal 釋放資源,並執行任何其他必要的清理,如果請求成功完成,則會執行這些清理。
新的瀏覽器資料儲存
[email protected]將新的資料儲存區帶到瀏覽器。在瀏覽器中,所有塊和其他回購資料當前都儲存在IndexedDB中,因為這是在寫入時持久和查詢大量使用者資料的唯一方法。
在 node 和 go-ipfs 中,LevelDB 一直是應用程式資料的首選資料儲存(儘管塊已儲存在檔案系統中),並且 go-IPFS 移至 Badger。
在這個擴充套件的介面資料儲存中,這是一種用於儲存由 IPFS 使用的資料儲存實現的鍵/值對的規範。在瀏覽器中,這是由 level-js 支援的資料儲存級別,而後者由 IndexedDB 支援。
為了在此處刪除幾層,我們建立了 datastore-idb 來實現介面資料儲存規範,該規範由 IndexedDB 支援,而無需經過級別。
這是什麼意思?
新的資料儲存區更小,更快,並且升級是無縫的,因為它仍然處於 IndexedDB 的幕後:
新功能
可取消的 API 呼叫(#2993)(2b24f59),關閉#3015
ipfs.block.put現在接受pin符合 go-ipfs#3015 的引數
修正錯誤
修復瀏覽器指令碼標籤示例(#3034)(ee8b769),關閉#3027
不再在瀏覽器中生成具有所有 IPLD 格式的瀏覽器捆綁包(#3025)(e6079c1)
typeof 將超時傳遞給 dag.get 的錯誤(#3035)(026a542)
刪除對節點全域性變數和內建外掛的使用,以為我們為瀏覽器捆綁程式自動停止包含它們 而做的準備#2932
源地圖不再包含在生產版本ipfs / aegir#549中
接下來是什麼?
檢視 js-ipfs 專案路線圖,其中包含按我們希望其著陸順序排列的標題功能。
路線圖中只標註了較大的功能,期望在路線圖專案之間釋出許多小的錯誤修正!
非常感謝所有能夠釋出此版本的人
@ 5310(2條評論)
@achingbrain(55次提交,17個PR,3個問題,33條評論)
@alanshaw(1問題,3評論)
@aphelionz(2條評論)
@AuHau(1條評論)
@autonome(1條評論)
@bertrandfalguiere(1條評論)
@betamos(1個PR,1個問題,7條評論)
@bluelovers(1 PR,1條評論)
@carsonfarmer(1次提交)
@ codecov-io(1條評論)
@corporatepiyush(1期)
@dapplion(2條評論)
@dirkmc(2次提交)
@Gozala(5個問題,15條評論)
@hugomrdias(11提交,4 PR,1問題,17評論)
@jacobheun(8提交,2 PR,1問題,8評論)
@jakehemmerle(3條評論)
@koivunej(1條評論)
@lidel(1次提交,2條評論)
@mdtanrikulu(1問題,1條評論)
@mistakia(1個公關)
@npfoss(1次提交,1個PR,1個問題)
@ obo20(1次提交,1個PR,1條評論)
@oed(1條評論)
@RobertFischer(1條評論)
@robertkiel(1條評論)
@rvagg(1個PR,1條評論)
@ spasimir21(1問題,3評論)
@stensonb(1次提交,13個PR)
@thattommyhall(1 PR,3條評論)
@ typhu-xyz(1條評論)
@ vasco-santos(14次提交,15個PR,2個問題,16條評論)
@vmx(5提交,1 PR,2評論)
@welcome(19條評論)
@wemeetagain(2次提交,1個PR,3條評論)
參與貢獻
您想為IPFS專案做貢獻,又不知道如何做嗎?好吧,有幾個地方可以開始使用:
檢查 js-ipfs 儲存庫中help wanted標籤的問題
加入 IPFS 的“全力以赴”,自我介紹,並讓我們知道您想在哪裡做出貢獻: https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
破解 IPFS,向我們展示您的成就!All Hands 呼叫也是進行演示的理想場所,請加入並向我們展示您建立的內容
透過 https://discuss.ipfs.io/ 加入討論,並幫助使用者找到答案。
加入 IPFS 核心實施每週同步,並參與其中!
你有問題嗎?
最好的地方要問你關於IPFS的問題,它是如何工作的,以及你可以用它做的是在 discuss.ipfs.io。我們也可以在#ipfs Freenode 上的頻道上找到。