Skip to content

Commit e964794

Browse files
authored
Merge pull request #486 from shutter-network/fix/use-keyper-index
Use msg.eon in messaging middleware `interceptDecryptionKeys()`
2 parents 05b0a80 + b074f54 commit e964794

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

rolling-shutter/keyperimpl/gnosis/handlers.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,27 @@ func (h *DecryptionKeysHandler) HandleMessage(ctx context.Context, msg p2pmsg.Me
316316
if err != nil {
317317
return []p2pmsg.Message{}, errors.Wrap(err, "failed to set tx pointer")
318318
}
319+
320+
identityPreimages := []identitypreimage.IdentityPreimage{}
321+
for _, key := range keys.Keys {
322+
identityPreimage := identitypreimage.IdentityPreimage(key.Identity)
323+
identityPreimages = append(identityPreimages, identityPreimage)
324+
}
325+
identitiesHash := computeIdentitiesHash(identityPreimages)
326+
for i, keyperIndex := range extra.SignerIndices {
327+
err = gnosisDB.InsertSlotDecryptionSignature(ctx, database.InsertSlotDecryptionSignatureParams{
328+
Eon: int64(keys.Eon),
329+
Slot: int64(extra.Slot),
330+
KeyperIndex: int64(keyperIndex),
331+
TxPointer: int64(extra.TxPointer),
332+
IdentitiesHash: identitiesHash,
333+
Signature: extra.Signatures[i],
334+
})
335+
if err != nil {
336+
return []p2pmsg.Message{}, errors.Wrap(err, "failed to insert slot decryption signature")
337+
}
338+
}
339+
319340
eonString := fmt.Sprint(keys.Eon)
320341
metricsTxPointer.WithLabelValues(eonString).Set(float64(newTxPointer))
321342
metricsTxPointerAge.WithLabelValues(eonString).Set(0)

rolling-shutter/keyperimpl/gnosis/messagingmiddleware.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"google.golang.org/protobuf/proto"
1616

1717
obskeyperdatabase "github.com/shutter-network/rolling-shutter/rolling-shutter/chainobserver/db/keyper"
18-
corekeyperdatabase "github.com/shutter-network/rolling-shutter/rolling-shutter/keyper/database"
1918
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/gnosis/database"
2019
"github.com/shutter-network/rolling-shutter/rolling-shutter/keyperimpl/gnosis/gnosisssztypes"
2120
"github.com/shutter-network/rolling-shutter/rolling-shutter/medley"
@@ -206,7 +205,6 @@ func (i *MessagingMiddleware) interceptDecryptionKeys(
206205
}
207206

208207
gnosisDB := database.New(i.dbpool)
209-
keyperCoreDB := corekeyperdatabase.New(i.dbpool)
210208
obsKeyperDB := obskeyperdatabase.New(i.dbpool)
211209

212210
trigger, err := gnosisDB.GetCurrentDecryptionTrigger(ctx, int64(originalMsg.Eon))
@@ -220,11 +218,7 @@ func (i *MessagingMiddleware) interceptDecryptionKeys(
220218
return nil, errors.Wrapf(err, "failed to get current decryption trigger for eon %d", originalMsg.Eon)
221219
}
222220

223-
eonData, err := keyperCoreDB.GetEon(ctx, int64(originalMsg.Eon))
224-
if err != nil {
225-
return nil, errors.Wrapf(err, "failed to get eon data from database for eon %d", originalMsg.Eon)
226-
}
227-
keyperSet, err := obsKeyperDB.GetKeyperSetByKeyperConfigIndex(ctx, eonData.KeyperConfigIndex)
221+
keyperSet, err := obsKeyperDB.GetKeyperSetByKeyperConfigIndex(ctx, int64(originalMsg.Eon))
228222
if err != nil {
229223
return nil, errors.Wrapf(err, "failed to get keyper set from database for eon %d", originalMsg.Eon)
230224
}

0 commit comments

Comments
 (0)