From 9510ad0f5d2e7250cfd599ce1a047ff0129b949f Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Thu, 23 Nov 2023 14:11:05 +0530 Subject: [PATCH] fix: specify clusterid as 16 when using sharding fleet so that metadata proto negotiation doesn't fail --- api/defaults.go | 5 ++++- node/status_node_services.go | 1 + params/config.go | 3 +++ wakuv2/config.go | 1 + wakuv2/waku.go | 1 + 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/api/defaults.go b/api/defaults.go index fefaebd72..198020744 100644 --- a/api/defaults.go +++ b/api/defaults.go @@ -23,6 +23,7 @@ const defaultMnemonicLength = 12 const walletAccountDefaultName = "Ethereum account" const keystoreRelativePath = "keystore" const defaultKeycardPairingDataFile = "/ethereum/mainnet_rpc/keycard/pairings.json" +const wakuClusterID uint16 = 16 // as per https://rfc.vac.dev/spec/51/#static-sharding 16 is assigned for Status app var paths = []string{pathWalletRoot, pathEIP1581, pathDefaultChat, pathDefaultWallet} @@ -115,7 +116,9 @@ func SetFleet(fleet string, nodeConfig *params.NodeConfig) error { return err } nodeConfig.ClusterConfig = *clusterConfig - + if fleet == shardsTest { + nodeConfig.ClusterConfig.ClusterID = wakuClusterID + } nodeConfig.ClusterConfig.WakuNodes = defaultWakuNodes[fleet] nodeConfig.ClusterConfig.DiscV5BootstrapNodes = defaultWakuNodes[fleet] diff --git a/node/status_node_services.go b/node/status_node_services.go index 573495601..d29354a2d 100644 --- a/node/status_node_services.go +++ b/node/status_node_services.go @@ -330,6 +330,7 @@ func (b *StatusNode) wakuV2Service(nodeConfig *params.NodeConfig, telemetryServe DefaultShardPubsubTopic: shard.DefaultShardPubsubTopic(), UseShardAsDefaultTopic: nodeConfig.WakuV2Config.UseShardAsDefaultTopic, TelemetryServerURL: telemetryServerURL, + ClusterId: nodeConfig.ClusterConfig.ClusterID, } if nodeConfig.WakuV2Config.MaxMessageSize > 0 { diff --git a/params/config.go b/params/config.go index d1b0c7eed..96a0b6d24 100644 --- a/params/config.go +++ b/params/config.go @@ -271,6 +271,9 @@ type ClusterConfig struct { // DiscV5Nodes is a list of enr to be used for ambient discovery DiscV5BootstrapNodes []string + + //Waku network identifier + ClusterID uint16 } // String dumps config object as nicely indented JSON diff --git a/wakuv2/config.go b/wakuv2/config.go index 9e13972f1..f4484915d 100644 --- a/wakuv2/config.go +++ b/wakuv2/config.go @@ -48,6 +48,7 @@ type Config struct { EnableFilterFullNode bool `toml:",omitempty"` DefaultShardPubsubTopic string `toml:",omitempty"` UseShardAsDefaultTopic bool `toml:",omitempty"` + ClusterId uint16 `toml:",omitempty"` } var DefaultConfig = Config{ diff --git a/wakuv2/waku.go b/wakuv2/waku.go index 9cbac797a..696ab3653 100644 --- a/wakuv2/waku.go +++ b/wakuv2/waku.go @@ -285,6 +285,7 @@ func New(nodeKey string, fleet string, cfg *Config, logger *zap.Logger, appDB *s node.WithKeepAlive(time.Duration(cfg.KeepAliveInterval) * time.Second), node.WithMaxPeerConnections(cfg.DiscoveryLimit), node.WithLogger(logger), + node.WithClusterID(cfg.ClusterId), } if cfg.EnableDiscV5 {