@achingbrain/libp2p-gossipsub 中文文档教程
js-libp2p-gossipsub
Lead Maintainer
Table of Contents
Specs
Gossipsub是基于meshsub和floodsub的pubsub实现。 您可以在此处阅读规范。
libp2p-gossipsub
目前实现了 规范的 v1.1
。
Install
npm install libp2p-gossipsub
Usage
const Gossipsub = require('libp2p-gossipsub')
const gsub = new Gossipsub(libp2p, options)
await gsub.start()
gsub.on('fruit', (data) => {
console.log(data)
})
gsub.subscribe('fruit')
gsub.publish('fruit', new TextEncoder().encode('banana'))
API
Create a gossipsub implementation
const options = {…}
const gossipsub = new Gossipsub(libp2p, options)
Options 是具有以下键值对的可选对象:
emitSelf
: boolean identifying whether the node should emit to self on publish, in the event of the topic being subscribed (defaults to false).gossipIncoming
: boolean identifying if incoming messages on a subscribed topic should be automatically gossiped (defaults to true).fallbackToFloodsub
: boolean identifying whether the node should fallback to the floodsub protocol, if another connecting peer does not support gossipsub (defaults to true).floodPublish
: boolean identifying if self-published messages should be sent to all peers, (defaults to true).doPX
: boolean identifying whether PX is enabled; this should be enabled in bootstrappers and other well connected/trusted nodes (defaults to false).msgIdFn
: a function with signature(message) => string
defining the message id given a message, used internally to deduplicate gossip (defaults to(message) => message.from + message.seqno.toString('hex')
)signMessages
: boolean identifying if we want to sign outgoing messages or not (default:true
)strictSigning
: boolean identifying if message signing is required for incoming messages or not (default:true
)messageCache
: optional, a customizedMessageCache
instance, see the implementation for the interface.scoreParams
: optional, a customized peer score parameters Object.scoreThresholds
: optional, a customized peer score thresholds Object.directPeers
: optional, an array ofAddrInfo
of peers with which we will maintain direct connections.
对于其余的 API,请参阅 libp2p-interfaces/pubsub。
Contribute
该模块正在积极开发中。 请检查问题并提交 PR!
License
麻省理工学院 © ChainSafe Systems
js-libp2p-gossipsub
Lead Maintainer
Table of Contents
Specs
Gossipsub is an implementation of pubsub based on meshsub and floodsub. You can read the specification here.
libp2p-gossipsub
currently implements the v1.1
of the spec.
Install
npm install libp2p-gossipsub
Usage
const Gossipsub = require('libp2p-gossipsub')
const gsub = new Gossipsub(libp2p, options)
await gsub.start()
gsub.on('fruit', (data) => {
console.log(data)
})
gsub.subscribe('fruit')
gsub.publish('fruit', new TextEncoder().encode('banana'))
API
Create a gossipsub implementation
const options = {…}
const gossipsub = new Gossipsub(libp2p, options)
Options is an optional object with the following key-value pairs:
emitSelf
: boolean identifying whether the node should emit to self on publish, in the event of the topic being subscribed (defaults to false).gossipIncoming
: boolean identifying if incoming messages on a subscribed topic should be automatically gossiped (defaults to true).fallbackToFloodsub
: boolean identifying whether the node should fallback to the floodsub protocol, if another connecting peer does not support gossipsub (defaults to true).floodPublish
: boolean identifying if self-published messages should be sent to all peers, (defaults to true).doPX
: boolean identifying whether PX is enabled; this should be enabled in bootstrappers and other well connected/trusted nodes (defaults to false).msgIdFn
: a function with signature(message) => string
defining the message id given a message, used internally to deduplicate gossip (defaults to(message) => message.from + message.seqno.toString('hex')
)signMessages
: boolean identifying if we want to sign outgoing messages or not (default:true
)strictSigning
: boolean identifying if message signing is required for incoming messages or not (default:true
)messageCache
: optional, a customizedMessageCache
instance, see the implementation for the interface.scoreParams
: optional, a customized peer score parameters Object.scoreThresholds
: optional, a customized peer score thresholds Object.directPeers
: optional, an array ofAddrInfo
of peers with which we will maintain direct connections.
For the remaining API, see libp2p-interfaces/pubsub.
Contribute
This module is actively under development. Please check out the issues and submit PRs!
License
MIT © ChainSafe Systems