ssbc / ssb-tangle

8 stars 2 forks source link

Is time travelling supported #11

Open Powersource opened 4 years ago

Powersource commented 4 years ago

So in ssb-wiki I think I'd like to support time-travelling (defined somewhere around here). Or, maybe not super encourage it, but I don't see the point in this case of yelling at users that do it. What it would represent is sort of "this old version had some nice stuff in it so I'll merge that into the current version". Or when there are false heads https://github.com/ssbc/ssb-tangle/issues/8 and the user guesses that a false head is a true head, I don't want to punish them for guessing wrong.

But I think this makes the graph stop being a tangle (in my limited understanding of its definition)? And there's some code/tests in this repo that looks like it has the intention of pruning away time travellers.

Maybe not a big deal but would be interesting to discuss.

mixmix commented 4 years ago

I think of a tangle as a DAG (directed acyclic graph) with some additional rules (that you define). As long as you're clear on what rules you want to follow it's fine.


Use cases and how I'd solve them

there's a past version that you want to include in the current version I would publish new transformations on the head of the tangle and copy in whatever you wanted from the past so that the current state would look like the past state

I want editing to be predictable (for coders + humyns using this) I think punishing people attaching messages way in the pas of the tangle and trying to sneak them in makes life a lot easier. There's a particular risk in the case that an edit would be to "who's a permitted author on this" which I want to mitigate. This code isn't plugged in yet. I think plugging it in could be optional in the future? The only strong opinion I have (for me use cases) is do not include dangling messages

I don't want people to be punished for extending a wrong head Yeah this is a bummer case. Trade-offs are a challenge. The rule "anything extending from an invalid transformation" is the "least worst" trade off. I strongly suspect that if you do allow these messages in, then you get yourself into a very grey zone (unclear) about how to proceed and calculate things. We could help people by alerting an author when it's detected that an edit they made has been disconnected