mirror of https://github.com/status-im/go-waku.git
chore(rln-relay): add logs for fetching events
This commit is contained in:
parent
dcc87cf24f
commit
75486f8226
|
@ -3,6 +3,7 @@ package dynamic
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"math/big"
|
"math/big"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -126,11 +127,19 @@ func NewDynamicGroupManager(
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gm *DynamicGroupManager) getMembershipFee(ctx context.Context) (*big.Int, error) {
|
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) {
|
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 {
|
func (gm *DynamicGroupManager) Start(ctx context.Context) error {
|
||||||
|
|
|
@ -67,10 +67,14 @@ func (mf *MembershipFetcher) HandleGroupUpdates(ctx context.Context, handler Reg
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
||||||
|
mf.log.Info("loading old events...")
|
||||||
|
t := time.Now()
|
||||||
err = mf.loadOldEvents(ctx, fromBlock, latestBlockNumber, handler)
|
err = mf.loadOldEvents(ctx, fromBlock, latestBlockNumber, handler)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
mf.log.Info("events loaded", zap.Duration("timeToLoad", time.Since(t)))
|
||||||
|
|
||||||
errCh := make(chan error)
|
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 {
|
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
|
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)
|
events, err := mf.getEvents(ctx, fromBlock, fromBlock+maxBatchSize)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t2 := time.Now()
|
||||||
if err := handler(events); err != nil {
|
if err := handler(events); err != nil {
|
||||||
return err
|
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)
|
events, err := mf.getEvents(ctx, fromBlock, toBlock)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// process all the fetched events
|
// 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) {
|
func (mf *MembershipFetcher) watchNewEvents(ctx context.Context, fromBlock uint64, handler RegistrationEventHandler, errCh chan<- error) {
|
||||||
|
|
Loading…
Reference in New Issue