Skip to content

Commit

Permalink
Fix startup on brand new chain and catchup after long break.
Browse files Browse the repository at this point in the history
  • Loading branch information
piohei committed Sep 24, 2024
1 parent e67fa99 commit 146d7d0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
29 changes: 21 additions & 8 deletions src/tasks/index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,20 +108,33 @@ pub async fn backfill_to_block(
rpc: &Provider<Http>,
latest_block: Block<H256>,
) -> eyre::Result<()> {
// Get the first block from the stream and backfill any missing blocks
let latest_block_number = latest_block
.number
.context("Missing block number")?
.as_u64();

let next_block_number: u64 = if let Some(latest_db_block_number) =
app.db.get_latest_block_number(chain_id).await?
{
latest_db_block_number + 1
} else {
tracing::info!(chain_id, "No latest block");
0
};
tracing::info!(
chain_id,
"No latest block in database. Will choose best candidate."
);

// Get the first block from the stream and backfill any missing blocks
let latest_block_number = latest_block
.number
.context("Missing block number")?
.as_u64();
// Because we do not store all the blocks (we clean up older blocks) there is no need
// to scan ALL the blocks. Especially as this may take a lot of time... We are trying
// here to move back in time "enough" to get some estimates later.
let jump_back_blocks = 60u64;

if latest_block_number > jump_back_blocks {
latest_block_number - jump_back_blocks
} else {
0
}
};

tracing::info!(
latest_block_number,
Expand Down
8 changes: 4 additions & 4 deletions src/tasks/prune.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ const fn minutes(seconds: i64) -> i64 {
seconds * 60
}

const fn hours(seconds: i64) -> i64 {
minutes(seconds) * 60
const fn hours(hours: i64) -> i64 {
minutes(hours) * 60
}

const fn days(seconds: i64) -> i64 {
hours(seconds) * 24
const fn days(days: i64) -> i64 {
hours(days) * 24
}

// TODO: This should be a per network setting
Expand Down

0 comments on commit 146d7d0

Please sign in to comment.