From 9a592be29cb94afa7cbc2af852fcacb85c97d4d6 Mon Sep 17 00:00:00 2001 From: Igor Crevar Date: Thu, 30 Mar 2023 18:07:53 +0200 Subject: [PATCH] EVM-568 Increase MaxBlockBacklog for block tracker --- tracker/event_tracker.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tracker/event_tracker.go b/tracker/event_tracker.go index 5791b6bad1..97ea10a08e 100644 --- a/tracker/event_tracker.go +++ b/tracker/event_tracker.go @@ -5,6 +5,7 @@ import ( hcf "github.com/hashicorp/go-hclog" "github.com/umbracle/ethgo" + "github.com/umbracle/ethgo/blocktracker" "github.com/umbracle/ethgo/jsonrpc" "github.com/umbracle/ethgo/tracker" ) @@ -60,8 +61,12 @@ func (e *EventTracker) Start(ctx context.Context) error { return err } + blockMaxBacklog := e.numBlockConfirmations*2 + 1 + blockTracker := blocktracker.NewBlockTracker(provider.Eth(), blocktracker.WithBlockMaxBacklog(blockMaxBacklog)) + tt, err := tracker.NewTracker(provider.Eth(), tracker.WithBatchSize(10), + tracker.WithBlockTracker(blockTracker), tracker.WithStore(store), tracker.WithFilter(&tracker.FilterConfig{ Async: true, @@ -76,6 +81,19 @@ func (e *EventTracker) Start(ctx context.Context) error { } go func() { + if err := blockTracker.Start(); err != nil { + e.logger.Error("failed to start blocktracker", "error", err) + } + }() + + go func() { + <-ctx.Done() + blockTracker.Close() + store.Close() + }() + + go func() { + // Sync method will also call blocktracker.Init(), so no need to call that method here if err := tt.Sync(ctx); err != nil { e.logger.Error("failed to sync", "error", err) }