diff --git a/bridge/cmd/guardiand/p2p.go b/bridge/cmd/guardiand/p2p.go index f4b0fc6f0..5926dce59 100644 --- a/bridge/cmd/guardiand/p2p.go +++ b/bridge/cmd/guardiand/p2p.go @@ -223,12 +223,11 @@ func p2p(obsvC chan *gossipv1.LockupObservation, sendC chan []byte) func(ctx con continue } - // TODO: better way to handle our own sigs? - //if envl.GetFrom() == h.ID() { - // logger.Debug("received message from ourselves, ignoring", - // zap.Any("payload", msg.Message)) - // continue - //} + if envl.GetFrom() == h.ID() { + logger.Debug("received message from ourselves, ignoring", + zap.Any("payload", msg.Message)) + continue + } logger.Debug("received message", zap.Any("payload", msg.Message), diff --git a/bridge/cmd/guardiand/processor.go b/bridge/cmd/guardiand/processor.go index 22d06f836..137ba3fa9 100644 --- a/bridge/cmd/guardiand/processor.go +++ b/bridge/cmd/guardiand/processor.go @@ -151,6 +151,9 @@ func vaaConsensusProcessor(lockC chan *common.ChainLock, setC chan *common.Guard } state.vaaSignatures[hash].ourVAA = v + + // Fast path for our own signature + go func() { obsvC <- &obsv }() case m := <-obsvC: // SECURITY: at this point, observations received from the p2p network are fully untrusted (all fields!) //