Skip to content

Commit 39fd356

Browse files
committed
Improve logs
Log the proposer index when skipping due to an unregistered proposer. Also, fix another message.
1 parent dcc826b commit 39fd356

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

rolling-shutter/keyperimpl/gnosis/newslot.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func (kpr *Keyper) maybeTriggerDecryption(ctx context.Context, slot uint64) erro
5050
gnosisKeyperDB := gnosisdatabase.New(kpr.dbpool)
5151
syncedUntil, err := gnosisKeyperDB.GetTransactionSubmittedEventsSyncedUntil(ctx)
5252
if err != nil {
53-
return errors.Wrap(err, "failed to query synced until from db")
53+
return errors.Wrap(err, "failed to query transaction submitted sync status from db")
5454
}
5555
if syncedUntil.Slot >= int64(slot) {
5656
// If we already synced the block for slot n before this slot has started on our clock,
@@ -86,13 +86,14 @@ func (kpr *Keyper) maybeTriggerDecryption(ctx context.Context, slot uint64) erro
8686
}
8787

8888
// don't trigger if the block proposer is not part of the validator registry
89-
isRegistered, err := kpr.isProposerRegistered(ctx, slot)
89+
isRegistered, proposerIndex, err := kpr.isProposerRegistered(ctx, slot, uint64(nextBlock))
9090
if err != nil {
9191
return err
9292
}
9393
if !isRegistered {
9494
log.Debug().
9595
Uint64("slot", slot).
96+
Uint64("proposer-index", proposerIndex).
9697
Msg("skipping slot as proposer is not registered")
9798
// Even if we don't trigger decryption, we still need to update the tx pointer or it will
9899
// become outdated.
@@ -109,22 +110,22 @@ func (kpr *Keyper) maybeTriggerDecryption(ctx context.Context, slot uint64) erro
109110
return kpr.triggerDecryption(ctx, slot, nextBlock, &keyperSet)
110111
}
111112

112-
func (kpr *Keyper) isProposerRegistered(ctx context.Context, slot uint64) (bool, error) {
113+
func (kpr *Keyper) isProposerRegistered(ctx context.Context, slot uint64, block uint64) (bool, uint64, error) {
113114
epoch := medley.SlotToEpoch(slot, kpr.config.Gnosis.SlotsPerEpoch)
114115
proposerDuties, err := kpr.beaconAPIClient.GetProposerDutiesByEpoch(ctx, epoch)
115116
if err != nil {
116-
return false, err
117+
return false, 0, err
117118
}
118119
if proposerDuties == nil {
119-
return false, errors.Errorf("no proposer duties found for slot %d in epoch %d", slot, epoch)
120+
return false, 0, errors.Errorf("no proposer duties found for slot %d in epoch %d", slot, epoch)
120121
}
121122
proposerDuty, err := proposerDuties.GetDutyForSlot(slot)
122123
if err != nil {
123-
return false, err
124+
return false, 0, err
124125
}
125126
proposerIndex := proposerDuty.ValidatorIndex
126127
if proposerIndex > math.MaxInt64 {
127-
return false, errors.New("proposer index too big")
128+
return false, 0, errors.New("proposer index too big")
128129
}
129130

130131
db := gnosisdatabase.New(kpr.dbpool)
@@ -133,12 +134,12 @@ func (kpr *Keyper) isProposerRegistered(ctx context.Context, slot uint64) (bool,
133134
BlockNumber: int64(block),
134135
})
135136
if err == pgx.ErrNoRows {
136-
return false, nil
137+
return false, proposerIndex, nil
137138
}
138139
if err != nil {
139-
return false, errors.Wrapf(err, "failed to query registration status for validator %d", proposerDuty.ValidatorIndex)
140+
return false, 0, errors.Wrapf(err, "failed to query registration status for validator %d", proposerDuty.ValidatorIndex)
140141
}
141-
return isRegistered, nil
142+
return isRegistered, proposerDuty.ValidatorIndex, nil
142143
}
143144

144145
func (kpr *Keyper) getTxPointer(ctx context.Context, eon int64, slot int64, keyperConfigIndex int64) (int64, error) {

0 commit comments

Comments
 (0)