code: func NewOrdererConfig(ordererGroup *cb.ConfigGroup, mspConfig *MSPConfigHandler) (*OrdererConfig, error) {
  	oc := &OrdererConfig{
  		protos: &OrdererProtos{},
  		orgs:   make(map[string]Org),
  	}
  
  	if err := DeserializeProtoValuesFromGroup(ordererGroup, oc.protos); err != nil {
  		return nil, errors.Wrap(err, "failed to deserialize values")
  	}
  
  	if err := oc.Validate(); err != nil {
  		return nil, err
  	}
  
  	for orgName, orgGroup := range ordererGroup.Groups {
  		var err error
  		if oc.orgs[orgName], err = NewOrganizationConfig(orgName, orgGroup, mspConfig); err != nil {
  			return nil, err
  		}
  	}
  	return oc, nil
  }
docs: // NewOrdererConfig creates a new instance of the orderer config.