-
Notifications
You must be signed in to change notification settings - Fork 352
Open
Labels
needs draftThis an issue that has no corresponding draft, and as such has not entered the CAP/SEP process.This an issue that has no corresponding draft, and as such has not entered the CAP/SEP process.
Description
Currently, the TimePoint data structure used for transaction minTime and maxTime refers to unix time stamps rather than ledger heights. Referring to ledger numbers instead of wall clock times is better for smart contracting applications where the goal is to ensure a number of ledgers (e.g., 1 ledger) between two actions to ensure that they are not ordered incorrectly (assuming they use different source account sequence numbers).
To fix this, I have four proposed amendments:
- Use the new Transaction formats to permit transactions with ledger number based timeouts instead of wall clock time
- Use the new Transaction formats to permit transactions with ledger number based timeouts as well as wall clock time
- Reinterpret TimeBounds to a LedgerNumberBounds if maxTime < minTime, making old transaction format capable of expressing ledger number bounds but also making previously statically provably invalid transactions valid
- Semantic Ledger Time Sorting (see Semantic Ledger Time Sorting #291, separate issue as it was sufficiently complicated to merit separate discourse).
Overall, my favor goes to solution 2, then 1, then 3 but I understand there may be alternative preferences based on complexity of implementation. 4 should be considered separately, as it would be in parallel to one of these three.
Metadata
Metadata
Assignees
Labels
needs draftThis an issue that has no corresponding draft, and as such has not entered the CAP/SEP process.This an issue that has no corresponding draft, and as such has not entered the CAP/SEP process.