-
Notifications
You must be signed in to change notification settings - Fork 14
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
17/URL data: draft #169
17/URL data: draft #169
Conversation
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.
Wondering if this spec should be created in vacp2p/rfc.
cc: @kaiserd
@rymnc you beat me to raising this question first 🙂, I was just editing another spec. And yeah, please let me know. I wasn't sure what the agreement was and this seemed like an obvious place. |
Co-authored-by: Aaryamann Challani <[email protected]>
@rymnc the documentation for this URL format should be part of the Status Messaging and Status Communities protocol specs that you are currently working on :-) |
@John-44 @rymnc to clarify, my question wasn't really about relation/linking, which it is of course somewhat related, but rather about actual placement. Status currently has two repositories which have several WIP, but stable too, specs. While I couldn't be more appreciative of and thankful that Vac is shaking things up and helping tremendously, I'd suggest
That it is what I wanted to clear out prior linking or making it part of something else. |
@felicio https://github.com/status-im/specs is the correct repo for this |
@John-44 then,
Cc @rymnc |
@rymnc as you are working on writing the missing Status Communities protocol specs and getting all the Status Messaging protocol specs up to date, are you thinking about either: A) Planning on moving the legacy Status Messaging protocol specs (that are currently located in the https://github.com/status-im/specs repo) to a new repo as you update them, so that when you are finished the legacy https://github.com/status-im/specs repo can be deleted? OR B) Adding the new Status Communities protocol specs to https://github.com/status-im/specs and updating the Status Messaging protocol specs in place in this repo? The reason I'm asking is that the Status Communities protocol specs and the Status Messaging protocol specs should be in the same place, and should not be duplicated in two different places. I have no opinion on (and don't mind) what this single place is, as long as both the Status Communities protocol specs and the Status Messaging protocol specs eventually end up in the same place, and as long as there isn't an old out of date duplicate of the Status Messaging protocol specs hanging around anywhere. e.g. perhaps we should use the vac rfc repo for everything, and get rid of the https://github.com/status-im/specs repo, or we could also do the other way around (use https://github.com/status-im/specs for everything) |
Hey everyone! Some historical context that might be useful:
Since then, the need for protocol specifications has again become clear, especially when it comes to Status Communities and Messaging specs in terms of understanding its scalability, privacy etc properties. Based on this, @rymnc took over the work to specify these into Vac RFCs as "application layer specs" (they are separate from Waku base layer specs), e.g. see There have also been similar application layer specs that have been defined as Vac RFCs (tagged as follows, https://github.com/vacp2p/rfc/pull/567/files#diff-bd54c3ccca130b9f7dbd9fd6855c36e4feecae4d85ccc09709bda9fec85dd57fR7). Based on this, I think it is safe to say that this repo is largely deprecated. With Vac RFCs we have a clear workflow for specs, and there are lot of people there who are used to working with protocol specs, so it makes more sense to keep them there. Note that this doesn't mean Status people can't be editors of these specs, and we'd encourage Status people to be editors of specs since you guys are the domain experts. For the time being though, this is @rymnc and he is working on porting and updating the core Status messaging protocol specs from this repo (including Community spec draft) to Vac RFCs. Once this is done, it makes sense to put a notice/remove those specs in this repo to indicate that this repo isn't kept up to date. If we consider things like URL data part of the core protocol, then this should indeed be part of the Community/Messaging protocol or one of its companion specs. If it is more of a client specific thing and it doesn't significantly impact core semantics, I think it is OK to just specify it at a user/app level as is done with feature-specs. I'd expect the feature-specs to refer to the protocol specs in terms of core semantics, and in some cases there might be some overlap with a different focus (protocol view or app/end-user view). As for the other specs that are currently in this repo, if we consider them core protocol specs I suggest we move them to Vac RFCs too (repo owned by Vac, but anyone can be a editor/contributor), and if they are more app/user specific (some of the older specs are indeed of this form) they can be moved to feature-specs (repo by Status). Also cc @kaiserd |
Thank you for the much needed context. I will have this spec reviewed and if approved moved. The following is just me expanding on what was my point of view:
I looked at the latter as driving the former. The "what" and "why" to the "how". And the closer together in placement (i.e. one repo) and processes (i.e. format, wider reaching team reviews) the better for recalling, reasoning, presenting and maintaining.
I didn't know all or most of these were to be ported.
I thought marking those as deprecated/unmaintained/outdated first, announcing it to the teams and revising them in place would help with awareness, prevent scattering of the information and actually cultivate the habit. |
docs/draft/17-url-data.md
Outdated
// content and public key concatanated and sha256 hashed twice, returning first 4 bytes | ||
bytes checksum = 2; |
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.
Not worth it, in my opinion. I expanded on this at status-im/status-web#345 (comment).
This demonstrates one way of preventing
- you creating a new community/profile with offending content (e.g. name, description)
- copying the generated share link
- slapping my/mine public key at the end
- and pointing others to the linka and telling them I'm the author of the content
However, if you knew my public key before hand and spent a little effort by generating the link programmatically, this wouldn't catch it. And that is also the reason why I think this checksum is NOT even worth – can't assume the data is valid.
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.
@cammellos confirmed, replacing with a signature after #
and adding corresponding field to CommunityDescription
and ContactCodeAdvertisement
.
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.
@corpetty @0xc1c4da to ensure integrity of the links containing encoded data at all times we've replaced the checksum for signature.
Is it okay?
Signature was originally considered at status-im/status-web#327 (comment).
Cc @John-44
message URLProps { | ||
string encoded_url_data = 1; | ||
// Signature of encoded URL data | ||
string encoded_signature = 2; |
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.
ℹ️ A signature of the already encoded data so the verification does not require decoding, decompressing and deserializing.
|
||
// Field on CommunityDescription, CommunityChat and ContactCodeAdvertisement | ||
message URLProps { | ||
string encoded_url_data = 1; |
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.
ℹ️ Stores the url data already encoded alongside the other proto messages so clients don't have to do the additional computation for other members/communities, just mapping now.
Moved to vacp2p/rfc#600. |
Moved from status-im/specs#169 Reference pull request: vacp2p/rfc#600 --------- Co-authored-by: Felicio Mununga <[email protected]>
Relates to: