Leios transaction-level latency/conflicts #312
Replies: 1 comment
-
Ordering of Txs for ledger reconstruction seems quite subtle.
In Full leios, EBs from pipeline
Building on the previous example, I think this can happen if the fork happens around the time of the certification for the EB of pipeline I am not really an expert in these sort of questions either though, so I am not sure how often you can expect something like this, or how much it impacts the timing for having confidence that a Tx is accepted. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
In Leios, a transaction is included in an IB, which is included in an EB, which is certified and included (directly or indirectly) in an RB (at which point the TX has "reached the chain"). So far, our simulations have been assuming very simple transactions which are always valid and never conflict with each other. To develop a better understanding of transaction latency, I'd like to know more about TX-level failure cases.
New transactions reach an IB (potentially multiple IBs) very quickly. When IBs are created, their contents are validated against some specific ledger state (and are re-validated against that ledger state as they're propagated through the network). Transactions are included in IBs in a deterministic order, and will simply not get included if they would introduce conflicts within an IB.
When IBs are included in an EB, they're included in some specific deterministic order. Within an EB, the transactions from two different IBs can conflict; when they do, the "first" transaction wins and the second is "rejected". (If the same transaction was duplicated across multiple IBs, it trivially conflicts with itself.) IBs can be included in multiple EBs, though the same IB cannot appear multiple times within an EB (or within any of the EBs it references).
All of that is just background for my question:
How soon can you be reasonably sure that a TX has been accepted or rejected?
If a transaction has reached an EB without being rejected, it doesn't conflict with anything else in that EB. If that EB is referenced by a later EB, could that later EB introduce conflicts which cause the TX to be rejected? Or can we prevent that with the right serialization order?
If a transaction is included in every certified EB from a particular pipeline, can we be reasonably certain that it will (eventually) be included in an RB without conflicts?
Can forks in the base chain cause previously-accepted Leios transactions to become rejected? I suspect no; certified EBs have plenty of time to propagate through the network, so forks would likely include the same certified EBs as the "real" head. But I'm not a researcher and I don't trust my reasoning on that.
Beta Was this translation helpful? Give feedback.
All reactions