holochain / clutter

Fully distributed twitter built on holochain
161 stars 22 forks source link

Document why: Seeing/following users that are not online #74

Closed lucksus closed 6 years ago

lucksus commented 6 years ago

As a Clutter user I want to be able to follow somebody (and see their meows) who was online before but is not online now so I can actually use Clutter as a replacement for Twitter.

lucksus commented 6 years ago

This should work actually. We discussed that it might not. If it does not that should be treated as a bug.

science-girl commented 6 years ago

You can see the meows of a user you follow who is online and then goes offline. However, when the person who signed off tries to sign back in, they get a message that their handle has been taken and therefore they need to come up with a new handle and re-follow everyone. Upon re-following, they see all the meows missed.

Would we want to be able to follow offline users and see their meows?

celestialhanley commented 6 years ago

From my perspective yes, we would want to be able to follow offline users and see their recent activity, the same way Twitter functions.

zippy commented 6 years ago

There may just be some timing issues where it takes a while for things to synchronize. Eg. today I came back to the UI and it started show luksus.

lucksus commented 6 years ago

I am just playing around with the current clutter develop (Qmbtpaf8GJCKi1MxCN4ynXQjKXsQwppYfGKL8s9bs7sT2t) that we started last night on several machines including the HoloPorts. I've spawn two test nodes with hcdev web, one while my hcd based node was running, and then one without it running.

=> I interpret this as a quite strong indication for gossip being broken. nicos-test-2 starting to see lucksus after booting the lucksus node almost certainly comes from gossip between lucksus and nicos-test-2. It should have gotten the gossip from holoport_plus but ok. But then not getting the information about nicos-test-1 through this gossip is maybe the same problem that prevented holoport_plus from gossiping about lucksus

@zippy ?

lucksus commented 6 years ago

I also looked into the code that handles handles ;) in clutter and compared the debug output it creates. This looks reasonable and not too complex. Basically the handles just hang on App.DNA.hash as directory and getHandles() just gets all of those links which are exactly the same thing we see in the UI.

=> I don't see a problem with Clutter, rather HC and gossip

zippy commented 6 years ago

From our testing today it looks like the issues may have been around NAT traversal and the bad defaults. Nico & I had different behavior which got cleared up after he completely deleted his .holochaindev directory. It's possible that the old defaults in the system.conf file were conflicting with changes in default setting that were added in #644 such that it wasn't setting the defaults correctly when making new app instances when running hcdev web. But we haven't completed the testing.

lucksus commented 6 years ago

@zippy and I had several more discussions. Main take away: this is not a bug but expected behavior with the current incomplete feature set of Holochain. (To be more precise: a result of the combination of source validation and 100% redundancy factor)

Explanation:

lucksus commented 6 years ago

We should document this fact in the HC documentation

zippy commented 6 years ago

@lucksus @thedavidmeister I've added an article. Does this seem like enough for this ticket, or should we go deeper?

lucksus commented 6 years ago

Yeah, I think so, @zippy. But I've spotted some typos. I've just signed up and believe I need to be approved to make changes, right?

zippy commented 6 years ago

I approved your account.

thedavidmeister commented 6 years ago

@zippy looks ok, but i wonder, why can't i do validation with the data alone? why must i talk to the source to perform validation?

zippy commented 6 years ago

Well, it all depends on the use case, e.g. validation may require examining their whole chain. Theoretically (and practically) you could pull that back from the DHT, or other nodes that have validated it before and have held onto a full copy of what ever you need to validate (i.e. the validation package). And that's precisely the part we haven't implemented yet, i.e. what I called "proxy validation". But the single entry doesn't, in the general case, give you enough information.

thedavidmeister commented 6 years ago

@zippy mmm i think there's a difference between proxy validation (sounds like "light wallet" to me) and wanting to be able to validate data independant of the source (wanting to do "offline" validation of data)