serai/processor/scanner
Luke Parker 13b74195f7 Don't have acknowledge_batch immediately run
`acknowledge_batch` can only be run if we know what the Batch should be. If we
don't know what the Batch should be, we have to block until we do.
Specifically, we need the block number associated with the Batch.

Instead of blocking over the Scanner API, the Scanner API now solely queues
actions. A new task intakes those actions once we can. This ensures we can
intake the entire Substrate chain, even if our daemon for the external network
is stalled at its genesis block.

All of this for the block number alone seems ridiculous. To go from the block
hash in the Batch to the block number without this task, we'd at least need the
index task to be up to date (still requiring blocking or an API returning
ephemeral errors).
2024-09-19 23:36:32 -07:00
..
src Don't have acknowledge_batch immediately run 2024-09-19 23:36:32 -07:00
Cargo.toml Route burns through the scanner 2024-09-19 23:36:32 -07:00
LICENSE Move scanner.rs to scanner/lib.rs 2024-09-19 23:36:32 -07:00
README.md Move scanner.rs to scanner/lib.rs 2024-09-19 23:36:32 -07:00

Scanner

A scanner of arbitrary blockchains for Serai.

This scanner has two distinct roles:

  1. Scanning blocks for received outputs contained within them
  2. Scanning blocks for the completion of eventualities

While these can be optimized into a single structure, they are written as two distinct structures (with the associated overhead) for clarity and simplicity reasons.