diff --git a/cli/operator/node.go b/cli/operator/node.go index 5fdb49e192..302e7d68fe 100644 --- a/cli/operator/node.go +++ b/cli/operator/node.go @@ -165,10 +165,13 @@ var StartNodeCmd = &cobra.Command{ logger.Fatal("could not connect to execution client", zap.Error(err)) } + var validatorCtrl validator.Controller cfg.P2pNetworkConfig.Permissioned = permissioned cfg.P2pNetworkConfig.NodeStorage = nodeStorage cfg.P2pNetworkConfig.OperatorPubKeyHash = format.OperatorID(operatorData.PublicKey) - cfg.P2pNetworkConfig.OperatorID = operatorData.ID + cfg.P2pNetworkConfig.OperatorID = func() spectypes.OperatorID { + return validatorCtrl.GetOperatorData().ID + } cfg.P2pNetworkConfig.FullNode = cfg.SSVOptions.ValidatorOptions.FullNode cfg.P2pNetworkConfig.Network = networkConfig @@ -238,7 +241,7 @@ var StartNodeCmd = &cobra.Command{ cfg.SSVOptions.ValidatorOptions.Metrics = metricsReporter cfg.SSVOptions.Metrics = metricsReporter - validatorCtrl := validator.NewController(logger, cfg.SSVOptions.ValidatorOptions) + validatorCtrl = validator.NewController(logger, cfg.SSVOptions.ValidatorOptions) cfg.SSVOptions.ValidatorController = validatorCtrl operatorNode = operator.New(logger, cfg.SSVOptions, slotTickerProvider) diff --git a/network/p2p/config.go b/network/p2p/config.go index 9dd29ca7fc..3880b52311 100644 --- a/network/p2p/config.go +++ b/network/p2p/config.go @@ -63,7 +63,7 @@ type Config struct { // OperatorPubKeyHash is hash of operator public key, used for identity, optional OperatorPubKeyHash string // OperatorID contains numeric operator ID - OperatorID spectypes.OperatorID + OperatorID func() spectypes.OperatorID // Router propagate incoming network messages to the responsive components Router network.MessageRouter // UserAgent to use by libp2p identify protocol diff --git a/network/p2p/p2p.go b/network/p2p/p2p.go index 96c8d0771e..9ee5c04126 100644 --- a/network/p2p/p2p.go +++ b/network/p2p/p2p.go @@ -76,7 +76,7 @@ type p2pNetwork struct { nodeStorage operatorstorage.Storage operatorPKHashToPKCache *hashmap.Map[string, []byte] // used for metrics operatorPrivateKey *rsa.PrivateKey - operatorID spectypes.OperatorID + operatorID func() spectypes.OperatorID } // New creates a new p2p network diff --git a/network/p2p/p2p_pubsub.go b/network/p2p/p2p_pubsub.go index dc28fdffab..1ec65082a6 100644 --- a/network/p2p/p2p_pubsub.go +++ b/network/p2p/p2p_pubsub.go @@ -70,7 +70,7 @@ func (n *p2pNetwork) Broadcast(msg *spectypes.SSVMessage) error { return err } - encodedMsg = commons.EncodeSignedSSVMessage(encodedMsg, n.operatorID, signature) + encodedMsg = commons.EncodeSignedSSVMessage(encodedMsg, n.operatorID(), signature) } vpk := msg.GetID().GetPubKey()