http://www.xiaoyenzi.com

js-libp2p 0.26.0上线

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/

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。