From a96418c9a21784271b801fdb735502ca94a3dcf7 Mon Sep 17 00:00:00 2001 From: zhi Date: Tue, 25 Nov 2025 16:46:53 +0800 Subject: [PATCH] limit query range --- api/config.go | 2 +- api/coreservice.go | 3 +++ api/coreservice_test.go | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) 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") })