-
Notifications
You must be signed in to change notification settings - Fork 432
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
decentralized storage of annotations #777
Comments
Level 0: Annotations are stored on the web as documents. Either servers act as just an index / search service and the data is retrieved from other URLs, or the browser itself remembers URLs where annotations have been seen and maintains that index. Or both. Issues include cross-origin restrictions on fetching the annotation data from third parties, or authentication issues when third party services are used as annotation storage providers require auth. |
@tilgovi: for this Level 0, what kind of mechanism do you envision for automatically propagating the information about available storages, and eventually achieving eventual consistency among the participants? |
Automatic? Nothing. No need. Eventual consistency? There's no redundancy. I don't see what could be inconsistent. I'm not talking about federation where changes have to propagate. I'm talking about annotations just being in places. Like images today. |
To leave some ideas on that topic, I like projects like but others are also working in the field, of course. Have you checked the Alternative Internet list for interesting emerging standards that possibly might be useful? Real federation is also already working today within the Smallest Federated Wiki and we'd desperately need an annotation layer over there. Maybe it'd be wise to join forces to (a) have Wiki follow the Open Annotation Standard and (b) find suitable federation paradigms. |
@almereyda I've seen the alt Internet list and I love it, but I'm not familiar with NDN, so I'll check that out. I actually had a conversation with Ward about fedwiki and annotator at OSBridge two years ago. I'm not sure he'd remember. It was way to early for both of us to think about collaborating. Thank you so much for bringing it up on the issues over there. I just subscribed myself to that issue. |
A pretty p2p and nice thing could be an abstracted (NDN? Check out their browser to browser chat example.) WebRTC swarm of nodes. That would even deliver some kind of online presence service, the hard way. |
All fascinating stuff but doesn't belong in this tracker. It should be a project of its own which we might optional pull into some future build of Hypothesis. |
I see. Maybe first the W3C Social WG should publish their results on recommendations for easy federation, i.e. via Activity Streams 2.0. |
That would be great. Although, no one should feel they need to wait for that unless they want to. I'm simply trying to pull lots of feature requests from this repository and suggest that we spin off projects where it's relevant and start to split hypothesis/h up where it makes sense so that there's a manageable amount of stuff here and we can effectively triage bugs. |
That's what an issue tracker is actually there for. Why not spinning up a Discourse or NodeBB site for community discussions? |
Inspired by some ideas of @tilgovi.
Currently, we rely on a central backend. (In the future, we plan to implement some kind of federation, so that we can simultaneously connect to multiple backends, but it will still be basically a client-server architecture.)
This is a vulnerability, backend is a single point if failure. If it goes down, or is taken out, or access is severed, then the annotations are gone. (At least temporarily.)
Therefore, it would be great if (at some point in future) we could eliminate this SPOF, and migrate to a fully decentralized architecture.
Level 1 of this could be using a self-replicating, auto-spanning, P2P network of server nodes, which would provide redundant data storage. (Think BitTorrent or BitCoin.) At this level, the client would still depend on a server, but there would be many of them to choose from.
Level 2 of this would be to do the same thing in a completely server-less way. Using WebRTC, browsers could build their own P2P network. Available data storage place would probably be more limited than with dedicated server nodes, but on the other hand, the number of available nodes would be higher, so this might compensate this limitation. In theory, we could store all the annotations in this P2P network, created and hosted by the web browser themselves.
Of course when designing this, eventual consistency, and delays in message propagation must be taken into account. The user experience would most certainly be less comfortable. (At least until generally available network bandwidth grows again, by at least 1 or 2 magnitudes.)
Because if the tremendous difficulty, and the inherent limitations, I guess this change is only worth is we conclude that we need to plan
Just entering this into the tracker for record.
The text was updated successfully, but these errors were encountered: