js-libp2p 0.26.0上線

2021-01-20 IPFS愛好者社區

Gossipsub支持和Promisify API

亮點

Gossipsub

感謝Chainsafe的出色工作,讓Gossipsub來到了這裡!Gossipsub是一種比Floodsub更高效的pubsub路由器。它不向所有的對等點廣播,而是向受控的對等點子集廣播。要了解更多Gossipsub的工作原理以及它與Floodsub的不同之處,請查看規範。(本文由IPFS中國社區編譯)

如果您正在使用Pubsub,現在可以切換到使用Gossipsub而不是Floodsub,Gossipsub將自動為不支持它的對等點回退到Floodsub。請參閱下面的API更改部分,了解如何將配置遷移到使用Gossipsub。

Promisify

當我們遷移到async/ wait時,我們承諾使用Libp2p公共方法。一些較低級別的庫目前正在利用libp2p進行測試。通過宣傳libp2p API,他們向完全異步/等待的過渡將有很大幫助。一旦async / await更改被傳播,我們將在未來的更新中刪除Promisify以及回調支持,因為那時libp2p將擁有完全的異步/等待支持。請參閱下面的API更改,以查看中斷更改。

API的變化

突破性的變化

配置

開關選項

libp2p-switch的配置已經更改。blacklistTTL和blackListAttempts分別更改為denyTTL和denytry。你可以這樣設置:

const libp2p = new Libp2p({

switch: {

denyTTL: 120e3,

denyAttempts: 5,

}

...

})

發布訂閱

訂閱:為了符合pubsub接口,libp2p.pubsub.subscribe已經重新排列了params的順序。他們以前是topic, options, handler, callback,現在topic, handler, options, callback。如果您沒有使用options,您應該可以忽略此更改。

配置:Pubsub以前是通過實驗配置啟用的。現在必須指定pubsub實現(Gossipsub或Floodsub),並通過它自己的配置啟用/禁用它。設置pubsub將自動啟用它。您可以通過在配置中顯式設置enabled為false來禁用它。

const libp2p = new Libp2p({

modules: {

pubsub: require('libp2p-gossipsub'),

...

},

config: {

pubsub: {

enabled: true

},

...

}

...

})

Promisify

所有libp2p公共方法都已承諾,因此可以省略回調,支持基於承諾的使用,包括async/ wait。例如,start可以用作:

libp2p.start(onStart)

// or

await libp2p.start()

Gossipsub

Gossipsub集成到現有的libp2p中。pubsub API。一旦Gossipsub被提供為您的pubsub實現,您將能夠像以前使用Floodsub一樣使用它。有關pubsub配置更改,請參閱上面的小節。

非常感謝大家讓這個版本成為可能

按字母順序排列,以下是為這個版本做出了429次貢獻的38位貢獻者名單:

Abraham Elmahrek (1 PR, 1 issue, 2 comments)

Alan Shaw (1 PR, 6 reviews, 5 comments)

Alex Potsides (1 PR, 1 review)

Cayman (4 PRs, 2 issues, 26 reviews, 10 comments)

Cody Eilar (2 issues, 4 comments)

David Dias (6 issues, 8 comments)

dirkmc (4 reviews, 1 comment)

Filip (1 PR, 1 comment)

Gregory Markou (4 PRs, 18 reviews, 17 comments)

hapsody (1 comment)

Henrique Dias (1 issue, 1 comment)

Hugo Dias (1 review)

Isaac Jacobs (1 issue, 7 comments)

Jacob Heun (14 PRs, 3 issues, 31 reviews, 37 comments)

Jakub (1 PR)

John_Suu (2 comments)

Jorropo (2 PRs)

Justin Maier (1 comment)

kumavis (1 review)

laubsauger (1 issue)

Maciej Krüger (2 PRs, 1 issue, 2 reviews, 20 comments)

Marcin Rataj (1 review)

Marin Petruni (1 issue, 5 reviews, 1 comment)

Michael FIG (1 PR)

Michiel De Backker (1 comment)

Mikeal Rogers (1 comment)

Mikerah (2 PRs, 7 reviews, 18 comments)

Nate Foss (1 PR, 1 issue, 2 comments)

ohager (2 comments)

Pat White (1 comment)

Qmstream (2 PRs, 2 comments)

Raúl Kripalani (1 comment)

Richard Schneider (1 comment)

Saquib ul hassan (1 issue, 1 comment)

Steven Allen (1 PR)

Tapasweni Pathak (1 PR, 1 comment)

Vasco Santos (17 PRs, 4 issues, 59 reviews, 36 comments)

zthomas (1 issue)

你也想做貢獻嗎

您是否願意為libp2p項目做貢獻卻不知道如何做?你可以從以下幾個地方開始:

使用libp2p repo中的help wanted標籤檢查問題;

加入IPFS All Hands,介紹您自己,並讓我們知道您想在哪裡做出貢獻—https://github.com/ipfs/teammgmt # All-Hands-call;

測驗IPFS,讓我們看看你做了什麼!All Hands call也是演示的完美場所,加入並向我們展示您能構建什麼。

加入到http://discuss.libp2p的討論中。並幫助用戶找到他們的答案。

加入Libp2p團隊同步和Sprint的一部分行動!

你有問題嗎

關於libp2p、它是如何工作的以及如何使用它,最好的提問地點是discussion .libp2p.io。我們也可以在Freenode上的#libp2p頻道上找到。

作者:Jacob Heun

本文由IPFS中國社區編譯,原文連結:https://blog.ipfs.io/2019-08-07-js-libp2p-0-26/

什麼是IPFS?

IPFS是一個分布式的存儲項目,與激勵層Filecoin形成了一個有效的市場閉環,構建出一個去中心化存儲網絡系統。

Filecoin是2017年最大的私募項目,短短時間募集了2.57億美元。

目前期貨價格約45.5元左右,按照20億枚Token計算,未上線已市值910億人民幣。

我們是IPFS中國社區,垂直專注於IPFS領域,努力提供客觀的、第三方的IPFS、Filecoin、挖礦等最新資訊,共同推進IPFS相關應用的發展,建立一個良好的IPFS生態圈。

丨熱門閱讀

相關焦點

  • js-ipfs, go-libp2p和js-libp2p的新版本
    weekly-114/歡迎來到IPFS周報以下是自上期IPFS周報以來的一些亮點js-ipfs,go-libp2p和js-libp2p的新版本是時候進行一些更新了!查看最新消息:js-ipfs v0.52:修復定義類型以及添加示例;刪除所有深奧的IPLD格式;go-libp2p v0.12:引入了一個新的BasicConnectionGater來進行filter的內外連接以及其他優化;js-libp2p v0.29.3:解決了撥號前出現的多地址問題。
  • libp2p-rs 0.1.0 已經發布
    如果大家經常關注IPFS的動態,那對libp2p應該會有所了解。libp2p是一個為p2p網絡構建的基礎模塊,源於開源項目IPFS。IPFS團隊將點對點(peer-to-peer)網絡的網絡層從IPFS工程裡面分離出來,形成一個獨立的項目,這就是libp2p。
  • IPFS/libp2p進展更新
    本月協議實驗室連續發布了go-ipfs 0.4.18,js-libp2p 0.24.0和js-ipfs 0.33.0,重要更新如下。QUICgo-ipfs終於合入了原計劃Q3完成的QUIC(之前是go-libp2p已經合入了,卡在go-ipfs)。
  • libp2p-rs開源項目的落地實現
    libp2p是一個為p2p網絡構建的基礎模塊,源於開源項目IPFS。IPFS團隊將點對點(peer-to-peer)網絡的網絡層從IPFS工程裡面分離出來,形成一個獨立的項目,這就是libp2p。從本質上說,libp2p是一個模塊化和可拓展的網絡堆棧,專注於傳輸不可知論,模塊化和可移植編碼,最終實現無論設備所處的環境、運行的協議如何,libp2p都能讓設備的互聯成為現實。
  • 認識Libp2p功能
    libp2p是IPFS協議工程實現中最為重要的模塊。libp2p負責PFS數據的網絡通信、路由、交換等功能。208年7月,協議實驗室在全球PFS開發者大會上將libp2p提升為一級項目,與IPFS和 Filecoin比肩。
  • 阿羅先行網絡獵戶座的技術亮點之一——Libp2p
    如果你一直關注Polkadot,以太坊2.0或Substrate的開發,你可能聽說過libp2p。Libp2p是一個網絡框架,允許你編寫去中心化應用程式。最初是IPFS的網絡協議,它已被提取成為自己的一級項目,可以說,Libp2p從一開始就設計得相當的模塊化,因此可以在許多不同的點對點項目中實現。雖然傳統的對等應用程式中的節點由IP位址和埠組合引用,但libp2p使用多地址的概念。
  • IPFS世界的物流系統:libp2p
    故libp2p會在初始化之後不停地通過各種方式「結識」更多的節點,包括利用Bootstrap list、mDNS、DHT等。libp2p會把這些獲取到的信息存儲在分布式記錄存儲模塊中,供以後查詢之用。當上層應用需要連接某個節點時,節點路由模塊會找到幾種不同的路徑供連接管理模塊嘗試(由於P2P網絡本身的特性,節點之間的連接狀況始終在動態變化,故不是所有路徑都是可以成功連接的)。
  • IPFS周報第105期:發布 js-ipfs 0.50.0
    https://docs.ipfs.io/concepts/case-study-fleek/#overview發布js-ipfs 0.50.0本周初,js-ipfs正式達到了0.50.0版本,增加了在多個瀏覽器選項卡之間共享節點的功能,並大大提高了固定性能。
  • IPFS官方周報:0.5.1版本正式發布,小BUG被修復!
    去中心化的道路,在零知識播客上使用go-ipfs0.5IPFS項目負責人Molly Mackinlay最近是Zero Knowledge Podcast的一位嘉賓,她談到了指導IPFS項目的經驗,以及libp2p、Bitswap、Testground、使用這些工具應用到的案例和項目,以及最近0.5ipfs版本所做的具體升級。
  • IPFS技術進展:js-IPFS 0.51.0添加了類型定義並刪除了SECIO
    js-IPFS@0.51.0已經從 launchpad 起步,並且正在被傳送到您的 node_modules 文件夾,它支持 TypeScript、自定義 DAG 格式和一種新的、更輕便的模塊使用方式。
  • js-IPFS@0.50.0 支持在多個瀏覽器選項卡之間共享
    js-IPFS@0.50.0 支持在多個瀏覽器選項卡之間共享節點,極大地提高了固定的性能。我們也在逐步淘汰 Node.js 緩衝區作為數據類型的使用,取而代之的是標準的 JavaScript Uint8Arrays。
  • 乾貨|更通用的P2P網絡協議棧——Libp2p
    為了支持各種異構的網絡設備互連,Libp2p核心要求之一就是傳輸層不可知,Libp2p支持不同的傳輸層協議,例如TCP、UDP、QUIC等。在傳輸層建立連接後還需要考慮網絡數據的隱私安全,Libp2p對傳輸通道加密,節點間通過加密通道進行通信。為了高效傳輸數據,Libp2p支持對連接進行多路流復用從而支持節點間多個並發流通信。
  • IPFS 2019年Q3季度回顧:大量項目上線,感謝所有貢獻者!
    大量的項目上線你在推特上關注 IPFS了嗎?有關新聞中 IPFS 的最新信息,請查看我們的 Twitter ,或者查看 Awesome IPFS 的最新文章。js-ipfs 0.37.0和0.38.0上線0.37.0版本提供了一個新的構造函數、更好的DNSLink支持和委託路由,0.38.0版本增加了對垃圾收集、Gossipsub和IPNS對「ipfs解析」的支持!js-libp2p 0.26.0上線8月初,js-libp2p也得到了Gossipsub的支持,並有望實現libp2p API。
  • 裡程碑:Testground v0.5用於測試所有P2P網絡
    今天,我們正式宣布啟動Testground v0.5,這對於我們和整個p2p生態系統來說,都是一個巨大的裡程碑。在這篇文章中,我們將帶您了解Testground是什麼,如何入門,接下來要做什麼以及Testground本身的背景知識。
  • io.js 1.0.0 正式發布,支持 ES6 語言特性!
    io.js 1.0.0 正式發布,此版本現已提供下載。從 Node.js v0.10.35 以來的常規改進如下:更多改進內容請看更新日誌。
  • js-IPFS 0.48.0發布 具有連接性改進和較小的塊存儲
    亮點  js-IPFS 0.48.0 具有更好的默認連接,更小的塊存儲和更直觀的API的新聞  default默認情況下啟用代理節點  Go IPFS節點使用libp2p-autonat軟體包來確定它們是否可以被外部網絡上的對等方撥號 -如果可以,則它們將自己從DHT客戶端升級到DHT伺服器。JS IPFS正在支持Autonat ,但在它登陸之前,它將僅在客戶端模式下運行,這是獲得完全DHT支持的墊腳石。
  • io.js 2.1.0 發布,伺服器 JS 引擎
    io.js 2.1.0 發布,此版本值得關注的改進:crypto: Diffie-Hellman key exchange (DHE) parameters
  • 「Filecoin星際大陸」JS-ipfs為瀏覽器實提供無限可能
    今天小編要跟大家介紹另一個使用IPFS構建的實現——js-ipfs。js-ipfs是什麼?js-ipfs是指完全用JavaScript編寫的完整P2P協議,可以運行在瀏覽器、Service Worker、Web擴展和Node.js中,它打開了通向無限可能世界的大門。js-ipfs當前已經更新至0.47.0版本,官網數據顯示最近一個月的下載量已達25,151。
  • js-IPFS 0.48.0發布,具有連接性改進和較小的塊存儲
    亮點js-IPFS 0.48.0 具有更好的默認連接,更小的塊存儲和更直觀的API的新聞default默認情況下啟用代理節點傳統上,JS IPFS主要針對瀏覽器,如果您想使用DHT,則瀏覽器是一個糟糕的地方。
  • IPFS技術進展:js-IPFS 0.50.0在共享的webworker中運行
    亮點在多個選項卡和密碼文件之間更快地共享IPFS節點js-IPFS@0.50.0 支持在多個瀏覽器選項卡之間共享節點,極大地提高了固定的性能。js-ipfs@0.50.0 改變了 pin 的默認存儲,使用數據存儲,而不是 DAG,並且隨著回購中固定塊的數量增加,您看到了相應的加速: