mirror of https://github.com/waku-org/nwaku.git
fix: derive relay pubsub topics from shards
This commit is contained in:
parent
612c73bd62
commit
6c0f653c40
|
@ -5,7 +5,8 @@ import
|
||||||
libp2p/peerid,
|
libp2p/peerid,
|
||||||
libp2p/protocols/pubsub/gossipsub,
|
libp2p/protocols/pubsub/gossipsub,
|
||||||
libp2p/nameresolving/dnsresolver,
|
libp2p/nameresolving/dnsresolver,
|
||||||
libp2p/crypto/crypto
|
libp2p/crypto/crypto,
|
||||||
|
system/ansi_c
|
||||||
|
|
||||||
import
|
import
|
||||||
./internal_config,
|
./internal_config,
|
||||||
|
@ -144,14 +145,23 @@ proc setupProtocols(
|
||||||
|
|
||||||
peerExchangeHandler = some(handlePeerExchange)
|
peerExchangeHandler = some(handlePeerExchange)
|
||||||
|
|
||||||
|
var pubsubTopics: seq[string] = conf.pubsubTopics
|
||||||
|
for shard in conf.shards:
|
||||||
|
pubsubTopics.add($NsPubsubTopic.staticSharding(conf.clusterId, shard))
|
||||||
|
|
||||||
|
if conf.shards.len == 0:
|
||||||
|
# If shards are not configured but content topics are, then assume autosharding is expected
|
||||||
|
# and derive shards from content topics
|
||||||
|
# This currently does not work as pubsub topic might be defined as well.
|
||||||
|
# Why are we doing this? Looks like it's because we are aiming for wakunode2 to be both client and server
|
||||||
let shards =
|
let shards =
|
||||||
conf.contentTopics.mapIt(node.wakuSharding.getShard(it).expect("Valid Shard"))
|
conf.contentTopics.mapIt(node.wakuSharding.getShard(it).expect("Valid Shard"))
|
||||||
|
for shard in shards:
|
||||||
|
pubsubTopics.add($shard)
|
||||||
debug "Shards created from content topics",
|
debug "Shards created from content topics",
|
||||||
contentTopics = conf.contentTopics, shards = shards
|
contentTopics = conf.contentTopics, shards = shards
|
||||||
|
|
||||||
if conf.relay:
|
if conf.relay:
|
||||||
let pubsubTopics = conf.pubsubTopics & shards
|
|
||||||
|
|
||||||
let parsedMaxMsgSize = parseMsgSize(conf.maxMessageSize).valueOr:
|
let parsedMaxMsgSize = parseMsgSize(conf.maxMessageSize).valueOr:
|
||||||
return err("failed to parse 'max-num-bytes-msg-size' param: " & $error)
|
return err("failed to parse 'max-num-bytes-msg-size' param: " & $error)
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,10 @@ proc logConfig(conf: WakuNodeConf) =
|
||||||
|
|
||||||
info "Configuration. Network", cluster = conf.clusterId, maxPeers = conf.maxRelayPeers
|
info "Configuration. Network", cluster = conf.clusterId, maxPeers = conf.maxRelayPeers
|
||||||
|
|
||||||
for shard in conf.pubsubTopics:
|
for pubsubTopic in conf.pubsubTopics:
|
||||||
|
info "Configuration. pubsub topics", pubsubTopic = pubsubTopic
|
||||||
|
|
||||||
|
for shard in conf.shards:
|
||||||
info "Configuration. Shards", shard = shard
|
info "Configuration. Shards", shard = shard
|
||||||
|
|
||||||
for i in conf.discv5BootstrapNodes:
|
for i in conf.discv5BootstrapNodes:
|
||||||
|
|
|
@ -423,7 +423,7 @@ proc mountRelay*(
|
||||||
|
|
||||||
node.switch.mount(node.wakuRelay, protocolMatcher(WakuRelayCodec))
|
node.switch.mount(node.wakuRelay, protocolMatcher(WakuRelayCodec))
|
||||||
|
|
||||||
info "relay mounted successfully"
|
info "relay mounted successfully", pubsubTopics
|
||||||
|
|
||||||
# Subscribe to topics
|
# Subscribe to topics
|
||||||
for pubsubTopic in pubsubTopics:
|
for pubsubTopic in pubsubTopics:
|
||||||
|
|
Loading…
Reference in New Issue