js-libp2p 0.26.0上线

2019-08-10 10:13:52

感谢Chainsafe的出色工作,让Gossipsub来到了这里!Gossipsub是一种比Floodsub更高效的pubsub路由器。它不向所有的对等点广播,而是向受控的对等点子集广播。

  亮点


  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


最新推荐