use historyPruningCutoff method

This commit is contained in:
Sina Mahmoodi 2025-03-13 12:57:13 +01:00 committed by Felix Lange
parent 440eb9ad90
commit e4c649a3c3
8 changed files with 15 additions and 26 deletions

View file

@ -442,10 +442,3 @@ func (bc *BlockChain) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscript
func (bc *BlockChain) SubscribeBlockProcessingEvent(ch chan<- bool) event.Subscription {
return bc.scope.Track(bc.blockProcFeed.Subscribe(ch))
}
// HistoryCutoff returns the tail of the block history.
func (bc *BlockChain) HistoryCutoff() uint64 {
// Only nofreezedb returns an error.
tail, _ := bc.db.Tail()
return tail
}

View file

@ -93,7 +93,7 @@ func (b *EthAPIBackend) HeaderByNumber(ctx context.Context, number rpc.BlockNumb
}
var bn uint64
if number == rpc.EarliestBlockNumber {
bn = b.eth.blockchain.HistoryCutoff()
bn = b.eth.blockchain.HistoryPruningCutoff()
} else {
bn = uint64(number)
}
@ -151,9 +151,9 @@ func (b *EthAPIBackend) BlockByNumber(ctx context.Context, number rpc.BlockNumbe
}
bn := uint64(number)
if number == rpc.EarliestBlockNumber {
bn = b.eth.blockchain.HistoryCutoff()
bn = b.eth.blockchain.HistoryPruningCutoff()
}
if bn < b.eth.blockchain.HistoryCutoff() {
if bn < b.eth.blockchain.HistoryPruningCutoff() {
return nil, &prunedHistoryError{}
}
return b.eth.blockchain.GetBlockByNumber(bn), nil
@ -164,7 +164,7 @@ func (b *EthAPIBackend) BlockByHash(ctx context.Context, hash common.Hash) (*typ
if number == nil {
return nil, nil
}
if *number < b.eth.blockchain.HistoryCutoff() {
if *number < b.eth.blockchain.HistoryPruningCutoff() {
return nil, &prunedHistoryError{}
}
return b.eth.blockchain.GetBlock(hash, *number), nil
@ -193,7 +193,7 @@ func (b *EthAPIBackend) BlockByNumberOrHash(ctx context.Context, blockNrOrHash r
if blockNrOrHash.RequireCanonical && b.eth.blockchain.GetCanonicalHash(header.Number.Uint64()) != hash {
return nil, errors.New("hash is not currently canonical")
}
if header.Number.Uint64() < b.eth.blockchain.HistoryCutoff() {
if header.Number.Uint64() < b.eth.blockchain.HistoryPruningCutoff() {
return nil, &prunedHistoryError{}
}
block := b.eth.blockchain.GetBlock(hash, header.Number.Uint64())
@ -257,8 +257,8 @@ func (b *EthAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, blockN
return nil, nil, errors.New("invalid arguments; neither block nor hash specified")
}
func (b *EthAPIBackend) HistoryCutoff() uint64 {
return b.eth.blockchain.HistoryCutoff()
func (b *EthAPIBackend) HistoryPruningCutoff() uint64 {
return b.eth.blockchain.HistoryPruningCutoff()
}
func (b *EthAPIBackend) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error) {

View file

@ -358,7 +358,7 @@ func (api *FilterAPI) GetLogs(ctx context.Context, crit FilterCriteria) ([]*type
if begin > 0 && end > 0 && begin > end {
return nil, errInvalidBlockRange
}
if begin < int64(api.events.backend.HistoryCutoff()) {
if begin < int64(api.events.backend.HistoryPruningCutoff()) {
return nil, &prunedHistoryError{}
}
// Construct the range filter
@ -406,7 +406,7 @@ func (api *FilterAPI) GetFilterLogs(ctx context.Context, id rpc.ID) ([]*types.Lo
if err != nil {
return nil, err
}
if header.Number.Uint64() < api.events.backend.HistoryCutoff() {
if header.Number.Uint64() < api.events.backend.HistoryPruningCutoff() {
return nil, &prunedHistoryError{}
}
// Block filter requested, construct a single-shot filter

View file

@ -64,7 +64,7 @@ type Backend interface {
CurrentHeader() *types.Header
ChainConfig() *params.ChainConfig
HistoryCutoff() uint64
HistoryPruningCutoff() uint64
SubscribeNewTxsEvent(chan<- core.NewTxsEvent) event.Subscription
SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription
SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription

View file

@ -181,15 +181,11 @@ func (b *testBackend) setPending(block *types.Block, receipts types.Receipts) {
b.pendingReceipts = receipts
}
<<<<<<< HEAD
func newTestFilterSystem(db ethdb.Database, cfg Config) (*testBackend, *FilterSystem) {
=======
func (b *testBackend) HistoryCutoff() uint64 {
func (b *testBackend) HistoryPruningCutoff() uint64 {
return 0
}
func newTestFilterSystem(t testing.TB, db ethdb.Database, cfg Config) (*testBackend, *FilterSystem) {
>>>>>>> 7139f930b0 (return prunedHistoryError from GetLogs/FilterLogs if accessing pruned state. duplicate prunedHistoryError into eth/filters package. add HistoryCutoff method to eth backend)
func newTestFilterSystem(db ethdb.Database, cfg Config) (*testBackend, *FilterSystem) {
backend := &testBackend{db: db}
sys := NewFilterSystem(backend, cfg)
return backend, sys

View file

@ -623,7 +623,7 @@ func (b testBackend) NewMatcherBackend() filtermaps.MatcherBackend {
panic("implement me")
}
func (b testBackend) HistoryCutoff() uint64 { return b.chain.HistoryCutoff() }
func (b testBackend) HistoryPruningCutoff() uint64 { return b.chain.HistoryPruningCutoff() }
func TestEstimateGas(t *testing.T) {
t.Parallel()

View file

@ -85,7 +85,7 @@ type Backend interface {
ChainConfig() *params.ChainConfig
Engine() consensus.Engine
HistoryCutoff() uint64
HistoryPruningCutoff() uint64
// This is copied from filters.Backend
// eth/filters needs to be initialized from this backend type, so methods needed by

View file

@ -403,4 +403,4 @@ func (b *backendMock) Engine() consensus.Engine { return nil }
func (b *backendMock) NewMatcherBackend() filtermaps.MatcherBackend { return nil }
func (b *backendMock) HistoryCutoff() uint64 { return 0 }
func (b *backendMock) HistoryPruningCutoff() uint64 { return 0 }