Files
serai/processor/scheduler/utxo/standard
Luke Parker 2f833dec77 Add job to competently check MSRVs
The prior workflow (now deleted) required manually specifying the packages to
check and only checked the package could compile under the stated MSRV. It
didn't verify it was actually the _minimum_ supported Rust version. The new
version finds the MSRV from scratch to check if the stated MSRV aligns.

Updates stated MSRVs accordingly.

Also removes many explicit dependencies from secq256k1 for their re-exports via
k256. Not directly relevant, just part of tidying up all the `toml`s.
2025-08-26 14:13:00 -04:00
..
2025-01-30 03:14:24 -05:00
2025-08-26 14:13:00 -04:00
2025-08-25 10:06:35 -04:00

UTXO Scheduler

A scheduler of transactions for networks premised on the UTXO model.

Design

The scheduler is designed to achieve fulfillment of all expected payments with an O(1) delay (regardless of prior scheduler state), O(log n) time, and O(log(n) + n) computational complexity.

For the time/computational complexity, we use a tree to fulfill payments. This quickly gives us the ability to make as many outputs as necessary (regardless of per-transaction output limits) and only has the latency of including a chain of O(log n) transactions on-chain. The only computational overhead is in creating the transactions which are branches in the tree. Since we split off the root of the tree from a master output, the delay to start fulfillment is the delay for the master output to re-appear on-chain.