From 75486f8226022ae8a78065aa40c99e22c5756252 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Tue, 12 Sep 2023 11:08:15 -0400 Subject: [PATCH] chore(rln-relay): add logs for fetching events --- .../rln/group_manager/dynamic/dynamic.go | 13 ++++++++++-- .../dynamic/membership_fetcher.go | 21 +++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/waku/v2/protocol/rln/group_manager/dynamic/dynamic.go b/waku/v2/protocol/rln/group_manager/dynamic/dynamic.go index 8facd2a7..a9ff2745 100644 --- a/waku/v2/protocol/rln/group_manager/dynamic/dynamic.go +++ b/waku/v2/protocol/rln/group_manager/dynamic/dynamic.go @@ -3,6 +3,7 @@ package dynamic import ( "context" "errors" + "fmt" "math/big" "time" @@ -126,11 +127,19 @@ func NewDynamicGroupManager( } func (gm *DynamicGroupManager) getMembershipFee(ctx context.Context) (*big.Int, error) { - return gm.web3Config.RLNContract.MEMBERSHIPDEPOSIT(&bind.CallOpts{Context: ctx}) + fee, err := gm.web3Config.RLNContract.MEMBERSHIPDEPOSIT(&bind.CallOpts{Context: ctx}) + if err != nil { + return nil, fmt.Errorf("could not check if credential exits in contract: %w", err) + } + return fee, nil } func (gm *DynamicGroupManager) memberExists(ctx context.Context, idCommitment rln.IDCommitment) (bool, error) { - return gm.web3Config.RLNContract.MemberExists(&bind.CallOpts{Context: ctx}, rln.Bytes32ToBigInt(idCommitment)) + exists, err := gm.web3Config.RLNContract.MemberExists(&bind.CallOpts{Context: ctx}, rln.Bytes32ToBigInt(idCommitment)) + if err != nil { + return false, fmt.Errorf("could not check if credential exits in contract: %w", err) + } + return exists, nil } func (gm *DynamicGroupManager) Start(ctx context.Context) error { diff --git a/waku/v2/protocol/rln/group_manager/dynamic/membership_fetcher.go b/waku/v2/protocol/rln/group_manager/dynamic/membership_fetcher.go index 37d140d0..de1e92f7 100644 --- a/waku/v2/protocol/rln/group_manager/dynamic/membership_fetcher.go +++ b/waku/v2/protocol/rln/group_manager/dynamic/membership_fetcher.go @@ -67,10 +67,14 @@ func (mf *MembershipFetcher) HandleGroupUpdates(ctx context.Context, handler Reg return err } // + + mf.log.Info("loading old events...") + t := time.Now() err = mf.loadOldEvents(ctx, fromBlock, latestBlockNumber, handler) if err != nil { return err } + mf.log.Info("events loaded", zap.Duration("timeToLoad", time.Since(t))) errCh := make(chan error) @@ -81,22 +85,35 @@ func (mf *MembershipFetcher) HandleGroupUpdates(ctx context.Context, handler Reg func (mf *MembershipFetcher) loadOldEvents(ctx context.Context, fromBlock, toBlock uint64, handler RegistrationEventHandler) error { for ; fromBlock+maxBatchSize < toBlock; fromBlock += maxBatchSize + 1 { // check if the end of the batch is within the toBlock range + t1 := time.Now() events, err := mf.getEvents(ctx, fromBlock, fromBlock+maxBatchSize) if err != nil { return err } + + t2 := time.Now() if err := handler(events); err != nil { return err } + + mf.log.Info("fetching events", zap.Uint64("from", fromBlock), zap.Uint64("to", fromBlock+maxBatchSize), zap.Int("numEvents", len(events)), zap.Duration("timeToFetch", time.Since(t1)), zap.Duration("timeToProcess", time.Since(t2))) } - // + t1 := time.Now() events, err := mf.getEvents(ctx, fromBlock, toBlock) if err != nil { return err } + // process all the fetched events - return handler(events) + t2 := time.Now() + err = handler(events) + if err != nil { + return err + } + + mf.log.Info("fetching events", zap.Uint64("from", fromBlock), zap.Uint64("to", fromBlock+maxBatchSize), zap.Int("numEvents", len(events)), zap.Duration("timeToFetch", time.Since(t1)), zap.Duration("timeToProcess", time.Since(t2))) + return nil } func (mf *MembershipFetcher) watchNewEvents(ctx context.Context, fromBlock uint64, handler RegistrationEventHandler, errCh chan<- error) {