diff --git a/api/config.go b/api/config.go index c98dfb538e..52871ab85e 100644 --- a/api/config.go +++ b/api/config.go @@ -41,7 +41,7 @@ var DefaultConfig = Config{ WebSocketPort: 16014, TpsWindow: 10, GasStation: gasstation.DefaultConfig, - RangeQueryLimit: 1000, + RangeQueryLimit: 2000, BatchRequestLimit: _defaultBatchRequestLimit, WebsocketRateLimit: 5, ListenerLimit: 5000, diff --git a/api/coreservice.go b/api/coreservice.go index d2962c3892..82dcc05d0d 100644 --- a/api/coreservice.go +++ b/api/coreservice.go @@ -1618,6 +1618,9 @@ func (core *coreService) LogsInRange(filter *logfilter.LogFilter, start, end, pa if err != nil { return nil, nil, err } + if end > start+core.cfg.RangeQueryLimit { + return nil, nil, status.Error(codes.InvalidArgument, "range exceeds the limit") + } // getLogs via range Blooom filter [start, end] blockNumbers, err := core.bfIndexer.FilterBlocksInRange(filter, start, end, paginationSize) if err != nil { diff --git a/api/coreservice_test.go b/api/coreservice_test.go index 8321b874da..0c14ac6225 100644 --- a/api/coreservice_test.go +++ b/api/coreservice_test.go @@ -911,7 +911,7 @@ func TestActions(t *testing.T) { }, ) - _, err := cs.Actions(0, 1001) + _, err := cs.Actions(0, 2001) require.ErrorContains(err, "range exceeds the limit") })