Add non-transaction-chaining scheduler

This commit is contained in:
Luke Parker
2024-09-04 03:54:12 -04:00
parent 0c1aec29bb
commit 6e9cb74022
17 changed files with 951 additions and 145 deletions

View File

@@ -0,0 +1,17 @@
# 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.