-
Notifications
You must be signed in to change notification settings - Fork 16
MCIP Draft - Consensing On Block Timestamps #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MCIP Draft - Consensing On Block Timestamps #12
Conversation
|
In Stellar, instead of Tombstone blocks, they have "time bounds" for every submitted transaction:
And this is checked using the concept of ledger time. More about this here: https://stellar.stackexchange.com/questions/1852/transaction-created-at-and-ledger-close-time And here: https://stellar.stackexchange.com/questions/632/how-are-timestamps-deemed-invalid Your approach involves something more complicated, where nodes propose and vote on block timestamps. Can you compare your approach with how timestamps actually work in Stellar Consensus Protocol (per the Stellar foundation)? Why should we not just adopt their approach? |
|
Adding additional rounds of voting may have nontrivial consequences for the performance of the network and transaction finality times. If there is a simpler way that avoids that somehow, or folds the agreement on timestamps into the messages that the protocol is already sending, then it seems like that would be preferable |
Using a local judgment of validity (local time) violates the eventual liveness guarantee of SCP (different opinions about 'current time' can leave parts of the network on different sides of a valid/invalid question, with no way to progress without manual intervention). My proposal does not violate that guarantee. If there is a simpler way to satisfy that guarantee, I would be happy to update the proposal.
Timestamps would travel alongside transaction statements, so a large part of the 'consensing on timestamps' occurs while 'consensing on transactions'. However, you are correct that on average there will be more rounds (exactly how many is very context-dependent). |
I wonder how Stellar's code around this actually works -- I doubt they require manual intervention when local timestamps get out of sync? I am still trying to find more precise documentation around this. We should have the answers to questions like that before we seriously consider implementing an MCIP like this IMO |
IIRC their hard fork protocol also violates the eventual liveness guarantee, and their solution is 'if you don't upgrade in lockstep, don't blame us if there is a problem' (i.e. you need manual intervention to recover). So, it would not surprise me if manual intervention is their solution to timestamp issues (which they probably 'assume' will never happen in practice - an assumption I will not accept for my analysis). |
No description provided.