Esempio n. 1
0
        public void Broadcast(ConsensusMessage message)
        {
            message.Validator = new Validator {
                Era = _era
            };
            if (_terminated)
            {
                Logger.LogTrace($"Era {_era} is already finished, skipping Broadcast");
                return;
            }

            var payload = _messageFactory.ConsensusMessage(message);

            foreach (var publicKey in _validators.EcdsaPublicKeySet)
            {
                if (publicKey.Equals(_wallet.EcdsaKeyPair.PublicKey))
                {
                    Dispatch(message, GetMyId());
                }
                else
                {
                    _consensusMessageDeliverer.SendTo(publicKey, payload);
                }
            }
        }