Commit 42f0dcf4 authored by Matthew Slipper's avatar Matthew Slipper Committed by GitHub

Merge pull request #1887 from ethereum-optimism/fix/dtl-large-query

dtl: smaller range for filter query
parents ba3de8ea ffadcb45
---
'@eth-optimism/data-transport-layer': patch
---
Smaller filter query for searching for L1 start height. This number should be configured so that the search does not need to happen because using a smaller filter will cause it to take too long.
...@@ -167,7 +167,7 @@ export class L1IngestionService extends BaseService<L1IngestionServiceOptions> { ...@@ -167,7 +167,7 @@ export class L1IngestionService extends BaseService<L1IngestionServiceOptions> {
startingL1BlockNumber = this.options.l1StartHeight startingL1BlockNumber = this.options.l1StartHeight
} else { } else {
this.logger.info( this.logger.info(
'Attempting to find an appropriate L1 block height to begin sync...' 'Attempting to find an appropriate L1 block height to begin sync. This may take a long time.'
) )
startingL1BlockNumber = await this._findStartingL1BlockNumber() startingL1BlockNumber = await this._findStartingL1BlockNumber()
} }
...@@ -453,12 +453,18 @@ export class L1IngestionService extends BaseService<L1IngestionServiceOptions> { ...@@ -453,12 +453,18 @@ export class L1IngestionService extends BaseService<L1IngestionServiceOptions> {
private async _findStartingL1BlockNumber(): Promise<number> { private async _findStartingL1BlockNumber(): Promise<number> {
const currentL1Block = await this.state.l1RpcProvider.getBlockNumber() const currentL1Block = await this.state.l1RpcProvider.getBlockNumber()
const filter =
this.state.contracts.Lib_AddressManager.filters.OwnershipTransferred()
for (let i = 0; i < currentL1Block; i += 2000) {
const start = i
const end = Math.min(i + 2000, currentL1Block)
this.logger.info(`Searching for ${filter} from ${start} to ${end}`)
for (let i = 0; i < currentL1Block; i += 1000000) {
const events = await this.state.contracts.Lib_AddressManager.queryFilter( const events = await this.state.contracts.Lib_AddressManager.queryFilter(
this.state.contracts.Lib_AddressManager.filters.OwnershipTransferred(), filter,
i, start,
Math.min(i + 1000000, currentL1Block) end
) )
if (events.length > 0) { if (events.length > 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment