func (i *Noops) broadcastConsensusMsg(msg *pb.OpenchainMessage) error { t := &pb.Transaction{} if err := proto.Unmarshal(msg.Payload, t); err != nil { return fmt.Errorf("Error unmarshalling payload of received OpenchainMessage:%s.", msg.Type) } // Change the msg type to consensus and broadcast to the network so that // other validators may execute the transaction msg.Type = pb.OpenchainMessage_CONSENSUS logger.Debug("Broadcasting %s", msg.Type) txs := &pb.TransactionBlock{Transactions: []*pb.Transaction{t}} payload, err := proto.Marshal(txs) if err != nil { return err } msg.Payload = payload if errs := i.cpi.Broadcast(msg); nil != errs { return fmt.Errorf("Failed to broadcast with errors: %v", errs) } return nil }