TimeBounds Ledger Number & Semantic Ledger Time Sorting.
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Domain
- blockchain
Research direction
Start by reading the four proposed amendments in this issue and the related Semantic Ledger Time Sorting issue #291. Compare the implications of the proposed transaction formats and TimeBounds reinterpretation; the work is done only after the protocol design is decided and its required changes are specified.
Written by the indexing model from the issue text.
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 #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.
- Dominant language
- RPC
- Stars
- 632
- Forks
- 399
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 6
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stellar/stellar-protocol
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
stellar/stellar-protocol#2010 ·
-
stale
Difficulty 5/5 Over a week Newbie friendliness 42/100
stellar/stellar-protocol#1928 · 6 comments ·
-
needs draft SEP
stellar/stellar-protocol#773 · 12 comments · 1 assignee ·
-
CAP help wanted needs draft
Difficulty 5/5 Over a week Newbie friendliness 35/100
stellar/stellar-protocol#324 · 11 comments ·
-
help wanted needs draft SEP
Difficulty 5/5 Over a week Newbie friendliness 25/100
stellar/stellar-protocol#316 · 4 comments ·
All issues in stellar/stellar-protocol
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
blinklabs-io/bursa#904 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
rust-bitcoin/rust-bitcoin#6908 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Merit-Systems/x402scan#1215 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Uniswap/default-token-list#2585 ·