mirror of https://github.com/certusone/vouch.git
Clean up submitter messages.
This commit is contained in:
parent
b1f2a7427a
commit
b53a039da9
|
@ -1,4 +1,5 @@
|
|||
Development:
|
||||
- provide clearer log messages for submitter
|
||||
- upgrade wallet account manager to be able to accept multiple attestations to sign in a single request
|
||||
|
||||
0.9.0
|
||||
|
|
|
@ -44,7 +44,7 @@ func New(ctx context.Context, params ...Parameter) (*Service, error) {
|
|||
}
|
||||
|
||||
// Set logging.
|
||||
log = zerologger.With().Str("strategy", "submitter").Str("impl", "all").Logger()
|
||||
log = zerologger.With().Str("strategy", "submitter").Str("impl", "multinode").Logger()
|
||||
if parameters.logLevel != log.GetLevel() {
|
||||
log = log.Level(parameters.logLevel)
|
||||
}
|
||||
|
|
|
@ -49,13 +49,10 @@ func (s *Service) SubmitAggregateAttestations(ctx context.Context, aggregates []
|
|||
}
|
||||
defer sem.Release(1)
|
||||
|
||||
_, address := s.serviceInfo(ctx, submitter)
|
||||
started := time.Now()
|
||||
err := submitter.SubmitAggregateAttestations(ctx, aggregates)
|
||||
if service, isService := submitter.(eth2client.Service); isService {
|
||||
s.clientMonitor.ClientOperation(service.Address(), "submit aggregate attestation", err == nil, time.Since(started))
|
||||
} else {
|
||||
s.clientMonitor.ClientOperation("<unknown>", "submit aggregate attestation", err == nil, time.Since(started))
|
||||
}
|
||||
s.clientMonitor.ClientOperation(address, "submit aggregate attestation", err == nil, time.Since(started))
|
||||
if err != nil {
|
||||
log.Warn().Err(err).Msg("Failed to submit aggregate attestations")
|
||||
return
|
||||
|
|
|
@ -50,22 +50,25 @@ func (s *Service) SubmitAttestation(ctx context.Context, attestation *spec.Attes
|
|||
}
|
||||
defer sem.Release(1)
|
||||
|
||||
serverType, address := s.serviceInfo(ctx, submitter)
|
||||
started := time.Now()
|
||||
err := submitter.SubmitAttestation(ctx, attestation)
|
||||
if service, isService := submitter.(eth2client.Service); isService {
|
||||
s.clientMonitor.ClientOperation(service.Address(), "submit attestation", err == nil, time.Since(started))
|
||||
} else {
|
||||
s.clientMonitor.ClientOperation("<unknown>", "submit attestation", err == nil, time.Since(started))
|
||||
}
|
||||
s.clientMonitor.ClientOperation(address, "submit attestation", err == nil, time.Since(started))
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "PriorAttestationKnown") {
|
||||
switch {
|
||||
case serverType == "lighthouse" && strings.Contains(err.Error(), "PriorAttestationKnown"):
|
||||
// Lighthouse rejects duplicate attestations. It is possible that an attestation we sent
|
||||
// to another node already propagated to this node, so ignore the error.
|
||||
log.Trace().Msg("Node already knows about attestation; ignored")
|
||||
} else {
|
||||
case serverType == "lighthouse" && strings.Contains(err.Error(), "UnknownHeadBlock"):
|
||||
// Lighthouse rejects an attestation for a block that is not its current head. It is possible
|
||||
// that the node is just behind, and we can't do anything about it anyway at this point having
|
||||
// already signed an attestation for this slot, so ignore the error.
|
||||
log.Trace().Msg("Node does not know head slot; ignored")
|
||||
default:
|
||||
log.Warn().Err(err).Msg("Failed to submit attestation")
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
log.Trace().Msg("Submitted attestation")
|
||||
}(ctx, sem, &wg, name, submitter)
|
||||
|
@ -81,3 +84,27 @@ func (s *Service) SubmitAttestation(ctx context.Context, attestation *spec.Attes
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
// serviceInfo returns the service name and provider information.
|
||||
func (s *Service) serviceInfo(ctx context.Context, submitter interface{}) (string, string) {
|
||||
serviceName := "<unknown>"
|
||||
provider := "<unknown>"
|
||||
if service, isService := submitter.(eth2client.Service); isService {
|
||||
provider = service.Address()
|
||||
}
|
||||
if service, isService := submitter.(eth2client.NodeVersionProvider); isService {
|
||||
nodeVersion, err := service.NodeVersion(ctx)
|
||||
if err == nil {
|
||||
switch {
|
||||
case strings.Contains(strings.ToLower(nodeVersion), "lighthouse"):
|
||||
serviceName = "lighthouse"
|
||||
case strings.Contains(strings.ToLower(nodeVersion), "prysm"):
|
||||
serviceName = "prysm"
|
||||
case strings.Contains(strings.ToLower(nodeVersion), "teku"):
|
||||
serviceName = "teku"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return serviceName, provider
|
||||
}
|
||||
|
|
|
@ -49,13 +49,10 @@ func (s *Service) SubmitBeaconBlock(ctx context.Context, block *spec.SignedBeaco
|
|||
}
|
||||
defer sem.Release(1)
|
||||
|
||||
_, address := s.serviceInfo(ctx, submitter)
|
||||
started := time.Now()
|
||||
err := submitter.SubmitBeaconBlock(ctx, block)
|
||||
if service, isService := submitter.(eth2client.Service); isService {
|
||||
s.clientMonitor.ClientOperation(service.Address(), "submit beacon block", err == nil, time.Since(started))
|
||||
} else {
|
||||
s.clientMonitor.ClientOperation("<unknown>", "submit beacon block", err == nil, time.Since(started))
|
||||
}
|
||||
s.clientMonitor.ClientOperation(address, "submit beacon block", err == nil, time.Since(started))
|
||||
if err != nil {
|
||||
log.Warn().Err(err).Msg("Failed to submit beacon block")
|
||||
return
|
||||
|
|
|
@ -49,13 +49,10 @@ func (s *Service) SubmitBeaconCommitteeSubscriptions(ctx context.Context, subscr
|
|||
}
|
||||
defer sem.Release(1)
|
||||
|
||||
_, address := s.serviceInfo(ctx, submitter)
|
||||
started := time.Now()
|
||||
err := submitter.SubmitBeaconCommitteeSubscriptions(ctx, subscriptions)
|
||||
if service, isService := submitter.(eth2client.Service); isService {
|
||||
s.clientMonitor.ClientOperation(service.Address(), "submit beacon committee subscription", err == nil, time.Since(started))
|
||||
} else {
|
||||
s.clientMonitor.ClientOperation("<unknown>", "submit beacon committee subscription", err == nil, time.Since(started))
|
||||
}
|
||||
s.clientMonitor.ClientOperation(address, "submit beacon committee subscription", err == nil, time.Since(started))
|
||||
if err != nil {
|
||||
log.Warn().Err(err).Msg("Failed to submit beacon committee subscription")
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue