Add processor/scheduler/utxo/primitives

Includes the necessary signing functions and the fee amortization logic.

Moves transaction-chaining to utxo/transaction-chaining.
This commit is contained in:
Luke Parker
2024-09-01 00:01:01 -04:00
parent fc765bb9e0
commit bd277e7032
12 changed files with 240 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
# Transaction Chaining Scheduler
A scheduler of transactions for networks premised on the UTXO model which
support transaction chaining. Transaction chaining refers to the ability to
obtain an identifier for an output within a transaction not yet signed usable
to build and sign a transaction spending it.
### 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(n)` computational complexity.
Due to the ability to chain transactions, we can immediately plan/sign dependent
transactions. 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.