From 229caf012535881cc2d33cd044e5eb4b378ac45d Mon Sep 17 00:00:00 2001 From: wanwiset25 Date: Mon, 31 Mar 2025 06:00:27 +0400 Subject: [PATCH 1/2] add limit to high resource demand api --- consensus/XDPoS/api.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/consensus/XDPoS/api.go b/consensus/XDPoS/api.go index a26b9e21a6..19caa6b97a 100644 --- a/consensus/XDPoS/api.go +++ b/consensus/XDPoS/api.go @@ -334,6 +334,9 @@ func (api *API) GetEpochNumbersBetween(begin, end *rpc.BlockNumber) ([]uint64, e if beginHeader.Number.Cmp(endHeader.Number) > 0 { return nil, errors.New("illegal begin and end block number, begin > end") } + if big.NewInt(50_000).Cmp(new(big.Int).Sub(endHeader.Number, beginHeader.Number)) < 0 { + return nil, errors.New("block range over limit of 50,000 blocks") + } epochSwitchInfos, err := api.XDPoS.GetEpochSwitchInfoBetween(api.chain, beginHeader, endHeader) if err != nil { return nil, err From f3a2577a76d8dcb5dc29c6945c8ed7060e3e26a7 Mon Sep 17 00:00:00 2001 From: wanwiset25 Date: Tue, 1 Apr 2025 08:50:44 +0400 Subject: [PATCH 2/2] simplify code --- consensus/XDPoS/api.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/consensus/XDPoS/api.go b/consensus/XDPoS/api.go index 19caa6b97a..bdd3b1f8bc 100644 --- a/consensus/XDPoS/api.go +++ b/consensus/XDPoS/api.go @@ -331,10 +331,11 @@ func (api *API) GetEpochNumbersBetween(begin, end *rpc.BlockNumber) ([]uint64, e if endHeader == nil { return nil, errors.New("illegal end block number") } - if beginHeader.Number.Cmp(endHeader.Number) > 0 { + diff := new(big.Int).Sub(endHeader.Number, beginHeader.Number).Int64() + if diff < 0 { return nil, errors.New("illegal begin and end block number, begin > end") } - if big.NewInt(50_000).Cmp(new(big.Int).Sub(endHeader.Number, beginHeader.Number)) < 0 { + if diff > 50_000 { return nil, errors.New("block range over limit of 50,000 blocks") } epochSwitchInfos, err := api.XDPoS.GetEpochSwitchInfoBetween(api.chain, beginHeader, endHeader)