mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-18 02:40:45 +00:00
Merge pull request #930 from XinFinOrg/add-api-limit
consensus/XDPoS: add limit to high resource demand api
This commit is contained in:
commit
9a00e475b4
1 changed files with 5 additions and 1 deletions
|
|
@ -324,9 +324,13 @@ func (api *API) GetEpochNumbersBetween(begin, end *rpc.BlockNumber) ([]uint64, e
|
||||||
if endHeader == nil {
|
if endHeader == nil {
|
||||||
return nil, errors.New("illegal end block number")
|
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")
|
return nil, errors.New("illegal begin and end block number, begin > end")
|
||||||
}
|
}
|
||||||
|
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)
|
epochSwitchInfos, err := api.XDPoS.GetEpochSwitchInfoBetween(api.chain, beginHeader, endHeader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue