Skip to content

Commit

Permalink
Merge pull request #22 from dipdup-io/endorsements-bakers-for-failed
Browse files Browse the repository at this point in the history
Set endorsement bakers only for failed
  • Loading branch information
aopoltorzhicky authored Oct 14, 2023
2 parents 7fdbddc + a0412d4 commit a243383
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
22 changes: 15 additions & 7 deletions cmd/mempool/bakers.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,31 @@ import (
"github.com/dipdup-net/go-lib/tzkt/data"
"github.com/dipdup-net/mempool/cmd/mempool/endorsement"
"github.com/dipdup-net/mempool/cmd/mempool/models"
pg "github.com/go-pg/pg/v10"
"github.com/rs/zerolog/log"
)

const unknownBaker = "unknown"

func (indexer *Indexer) setEndorsementBakers(ctx context.Context) {
defer indexer.wg.Done()

log.Info().Str("network", indexer.network).Msg("Thread for finding endorsement baker started")
indexer.info().Msg("Thread for finding endorsement baker started")

for {
select {
case <-ctx.Done():
return
case endorsement := <-indexer.endorsements:
if err := indexer.findBaker(ctx, indexer.db.DB(), endorsement); err != nil {
log.Err(err).Msg("find baker")
if len(endorsement.Errors) > 0 {
if err := indexer.findBaker(ctx, endorsement); err != nil {
log.Err(err).Msg("find baker")
continue
}
} else {
endorsement.Baker = unknownBaker
}
if _, err := indexer.db.DB().Model(endorsement).WherePK().Update("baker", endorsement.Baker); err != nil {
log.Err(err).Msg("set baker to endorsement")
}
}
}
Expand All @@ -53,7 +62,7 @@ func (indexer *Indexer) getEndorsingRights(ctx context.Context, level uint64) ([
}
}

func (indexer *Indexer) findBaker(ctx context.Context, tx pg.DBI, e *models.Endorsement) error {
func (indexer *Indexer) findBaker(ctx context.Context, e *models.Endorsement) error {
if err := indexer.delegates.Update(ctx, e.Level); err != nil {
return err
}
Expand Down Expand Up @@ -93,8 +102,7 @@ func (indexer *Indexer) findBaker(ctx context.Context, tx pg.DBI, e *models.Endo
e.Baker = "unknown"
}

_, err = tx.Model(e).WherePK().Update("baker", e.Baker)
return err
return nil
}

// BySlots -
Expand Down
7 changes: 4 additions & 3 deletions cmd/mempool/endorsement/check_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ func TestCheckKey(t *testing.T) {
}

func BenchmarkCheckKey(b *testing.B) {
key := "edpkuEhzJqdFBCWMw6TU3deADRK2fq3GuwWFUphwyH7ero1Na4oGFP"
signature := "siggEYDRoz7tiECt2fc1M75ieJNeVAP6MGHLhpyPpPue8EU3QYjYSJLnDoDPgxkmrjr6R33qGrAxLASwkyQqa1r3tc5mGPwT"
key := DecodePublicKey("edpkuEhzJqdFBCWMw6TU3deADRK2fq3GuwWFUphwyH7ero1Na4oGFP")
signature := DecodeSignature("siggEYDRoz7tiECt2fc1M75ieJNeVAP6MGHLhpyPpPue8EU3QYjYSJLnDoDPgxkmrjr6R33qGrAxLASwkyQqa1r3tc5mGPwT")
chainID := "NetXdQprcVkpaWU"
endorsement := models.Endorsement{
Level: 751292,
Expand All @@ -100,7 +100,8 @@ func BenchmarkCheckKey(b *testing.B) {
if err != nil {
return
}
hash := Hash(chainID, data)
for i := 0; i < b.N; i++ {
CheckKey(key[:4], DecodePublicKey(key), DecodeSignature(signature), Hash(chainID, data))
CheckKey("edpk", key, signature, hash)
}
}

0 comments on commit a243383

Please sign in to comment.