-
-
Notifications
You must be signed in to change notification settings - Fork 4
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
handling of deletes and channel state #16
Comments
given that the verification requires to have the original message (to check that the public key matches), i could see that as an motivation not to hold onto them in any case. |
Great questions cryptix!
This is a good point. I like the idea of this request returning deletions relevant to the channel state. Curious if @cblgh has any feedback re: the implementation complexity of such an edit.
Right now one would need to issue a
Great Q! The spec definitely doesn't address this case. If we say that it deletes the channel, then as the post deletion propagated, everyone would eventually delete that channel. It is an extra bit of implementation logic though, to check for this case. If we say that that the channel remains, I could see that being a bit weird from a user perspective -- having an empty channel with no members. More broadly then, if all posts in a channel are deleted, does that channel remain or be destroyed? I lean toward considering the channel not existing. |
As indicated in the public cabal I don't quite understand the question being posed. Can someone that understands it rephrase it? I really don't grok where delete is getting into the picture in the quoted paragraph of the opening post My flawed attempt at understanding it, demonstrated with a scenario: Let's say we have two users that are setting a topic of a channel, User A and user B. User A posts My read of what @cryptix was saying was that someone requesting channel state for channel C would benefit from peers verifiably deleting the obsolete topic, But since the only posts a user may delete are those posts they have authored themselves, this only makes sense for the case where a single user has posted two topics in a row for the same channel (and as such may delete the first cc @hackergrrl |
@cblgh I think I understand the [understandable] confusion! My understanding of the situation is this: Right now, all deletes are propagated using the (I'm going to constrain my responses on this issue to just here, rather than discuss partly here & partly on the pub cabal.) |
Proposals for spec (and thus implementation) changes:
|
👍🏻 on the proposed changed. Seems much more consistent.
yup, that part. Holding on to the deletes should keep the links tree intact, i think and make clear that a peer isn't lying or just sending out-of-date info..? At first i thought about not keeping track of deletes at all but now I'm not 100% sure that would be correct.. in a sense those are only important for people that saw the message referenced in a delete?
why are words so hard..? 😅 that should have been: can all types of post's be deleted? but I think you also covered that in your change proposal now, @hackergrrl. |
Seems reasonable!
I have qualms! My concern:
One solution I'm playing with in the request I'm introducing in the moderation work is a field
Though this mechanism may not play well with channel membership, specifically in the case of |
In response to the first suggested spec change: I don't have a strong preference either way. It sort of feels like an implementation detail to me (whether the channel is considered empty or non-existent) but I can see that there are side-effects - for example, inclusion of empty channels in channel list requests (where it might be preferable not to include empty channels at all). Regarding the second proposed change: I am still thinking through the ramifications. I think @cblgh raises an important point about the lack of a time-based limiting mechanism for channel state requests. Need to ferment this some more before I can offer further input. |
Agreed that we shouldn't let the state grow uncontrollably! The more I think about it the more I'm leaning towards not storing Forwarding them to "live" ( How do other's feel about the holes in the link dag? It could be that my fear there is purely academic. I guess they would heal? A few examples would help me. I will try to see I've I can make one or two. |
Agreed. Ensuring the
Since links are primarily intended to provide a causal proof for post ordering - and assuming that non-deleted I haven't implemented links fully in |
i was just thinking about the Cable spec and realized the implications of how deletes are implemented (if i understand correctly): a delete removes the entire message (including link metadata), not just the content. versus say bamboo or ppppp.
personally, i'd prefer deletes removed the content and not the link metadata, so a delete couldn't affect causality. i love tangles and i too probably have a kink for technical purity. 💜 |
since i'm on the soapbox, might as well proselytize the magical power of tangles and predsl. for example, Staltz's new p2p data structures with a history limiting mechanism, but also sorry if this isn't helpful, feel free to ignore me! 👻 |
@cryptix wrote:
@mycognosist wrote:
🙀 It's important to me that deletions are very durable, and are a part of the eventually consistent state. Simultaneously, I definitely agree with y'all that we should be very judicious about not having any responses be grow-only sets! Thanks for pointing that out @cblgh. Having thought about it again, I like the idea of ALL
Fortunately this is already how So, a new edit proposal:
(2) means that deletes will generally not propagate for deletions of (3) means that duplicate hashes can be returned if Alice has other channels in common with Bob if he deletes one of his (4) This is for the case when a client sees a |
@cblgh @mycognosist @cryptix I'm going to make these edits pretty soon if there are no objections or calls for further discussion. |
@hackergrrl A big ol 👍 from me—these revisions will help implementors a lot! I'll have to revisit my logic and the indexing to be certain, but I think these are roughly the interpretations glyph & I landed in when doing our respective implementations :) Once this lands I'll make time to patch the places in cable-core.js that don't conform if any. To clarify my own understanding by rephrasing - does the revision essentially say: "A channel time range request, for a given time range, should return all hashes for:"
|
@cblgh Yes, 👍🏻 to your rephrase. |
This is more of a conceptual question to get more understanding than about specific wording of the spec.
Why aren't
post/delete
s part of channel state replies?The way i'm seeing it, getting for e.g. two topics without the delete in the middle, where the 2nd/older topic would have non-recent links, would require a certain amount of trust to the peer, no?
Adding the delete in the middle would at least show "well this thing is gone" now and maybe i still have that old topic anyway.
tangentially related: can all post's be deleted?
If i create a new channel and then delete the join, what's the most recent state? empty channel? no channel? if somebody else joins and i join again, should i reference the delete?
The text was updated successfully, but these errors were encountered: