Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
docs: add SDS protocol for scalable e2e reliability #108
docs: add SDS protocol for scalable e2e reliability #108
Changes from all commits
aa299d4
af983d2
cdd07f1
c12ef4b
252d042
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
Check failure on line 52 in vac/raw/sds.md
GitHub Actions / lint
Headings should be surrounded by blank lines
Check failure on line 53 in vac/raw/sds.md
GitHub Actions / lint
Trailing spaces
Check failure on line 56 in vac/raw/sds.md
GitHub Actions / lint
Headings should be surrounded by blank lines
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may actually make sense to have a
LogEntry
orEntry
terminology in this spec because the termmessage
is very generic, and actually already a bit confusing in the status-go codebase.Or maybe doing like
WakuMessage
and prefix/postfix to help with setting the context.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a good point, although I'm struggling to find a term that wouldn't create confusion elsewhere. "Log" and "log entries" are already overloaded terms too and the mental model of "messages = log entries" may not be immediately apparent to someone approaching the code. Perhaps just calling it a
SyncedMessage
? Wdyt?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concretely, is that a Waku message id or a Status envelop id?
I assume Waku message id because one needs to be able to retrieve it from a store node?
But then if you cannot find the message from a Waku store, you can't have a re-transmission of it because it would change the hash of the message (timestamp is included).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would be a Status-level ID as the Waku message ID would (well, should) be inaccessible at this layer. A mapping could be done from SDS message ID to Waku message hash that gets updated with each retransmission.
Check failure on line 86 in vac/raw/sds.md
GitHub Actions / lint
Unordered list style
Check failure on line 86 in vac/raw/sds.md
GitHub Actions / lint
Lists should be surrounded by blank lines
Check failure on line 88 in vac/raw/sds.md
GitHub Actions / lint
Unordered list style
Check failure on line 91 in vac/raw/sds.md
GitHub Actions / lint
Unordered list style
Check failure on line 92 in vac/raw/sds.md
GitHub Actions / lint
Unordered list style
Check failure on line 93 in vac/raw/sds.md
GitHub Actions / lint
Unordered list style
Check failure on line 98 in vac/raw/sds.md
GitHub Actions / lint
Lists should be surrounded by blank lines
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could it be
Record
message instead? I understand this step is about inscribing the message to the local log to handover to the application. orTranscribe
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case we chose "deliver" as it matches terminology in related literature (specifically here: https://arxiv.org/pdf/2012.00472)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Waku message hash changes when re-broadcast. How is this handled?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Out of scope of this spec, as it focuses on the SDS protocol in isolation.
In practice, the various Waku "transport level" hashes should be mapped to the SDS-level message ID. When a message gets rebroadcast, the Waku hash may be updated for the same message ID entry.