Open mozfest-bot opened 7 years ago
We (me and @pgte) had prepared a little bit more context which didn't fit while filling the form, but here it goes:
Moving away from centralized services into truly distributed peer-to-peer systems that are not controlled by a single entity is a necessity. Relying on a few private entities to control the the content and delivery of the web is not safe nor scalable.
Plus, real-time collaborative applications are in their infancy, but we believe that in the future they will be the norm. This in itself will be a huge challenge since, in reality, the majority of the devices are poorly connected, relying on (often mobile) networks that offer little to no reliability.
Even if the underlying network is not reliable, any node should be able to perform changes in a shared data structure and, somehow, the system should be able to converge these changes into all participating nodes. Nodes should be able to enter and leave the network (either by their own will or because of network conditions), but the system should make sure that this does not lead to losing data or threatening convergence.
What protocols and data structures will allow participating users and their nodes to form ad-hoc networks for spontaneous or planned real-time collaboration without any centralized coordination?
Peer-to-peer networks can rely on special replicated data types that are distributed and conflict-free, and were built specially for these scenarios. In this session we’ll take a look at the IPFS pub-sub protocol and how we can use Conflict-free Replicated Data Types (CRDTs) to create data structures that are shared between many peers and that require no special coordinating entity.
Hi there @diasdavid,
This sounds really great. However, what level of skill / expertise will be needed to participate in the session? We're not against technical proposals at all, so if it's a fairly high bar that's fine, however - this sounds sufficiently important and interesting that it'd be great to make it as accessible as possible given the material :-)
Thanks!
Tim
Hi @timcowlishaw o/
Thanks for reviewing the proposal. We are happy to provide prep material, the requirement is a basic JavaScript base, we will go through giving a quick intro to CRDTs, why they excel in distributed scenarios and why it is important. The whole workshop will be prepared so that folks can follow a set of steps in which they can pair to work through :)
Hi all, sharing an update here from me and @pgte.
The outline for this session is:
People will work in groups for the Workshop/Tutorial part and instructions will be provided. As for requirements, we kindly ask everyone to:
@vigneshwerd is it possible to have 2 projectors in this session? (This way we could have me conducting and @diasdavid following along, minimising the confusion of going back and fourth between presentation, code and app.)
adding @maboa, I think this might be tricky to do... Made a note and see what we can do about this.
All I can say is that we'll do our best, but please plan for a single projector as well.
@diasdavid do you have links to the presentation and code as this was a session i missed. thanks
@pgte hi, slides failed. Can you provide valid slides source ?
@Zaynex Here it is: p2p-flipchart-171028110010.pdf
@Zaynex Here it is: p2p-flipchart-171028110010.pdf
Thanks
[ UUID ] b72f82a1-441f-4036-b8a2-9f462e2a3133
[ Submitter's Name ] David Dias [ Submitter's Affiliated Organisation ] Protocol Labs [ Submitter's Github ] @diasdavid
[ Additional facilitators ] Pedro Teixeira (@pgte)
What will happen in your session?
The participants will build a simple text editor that allows many nodes to participate and collaborate in real-time in editing. We will extrapolate this into a system that allows collaboration on a generic data structure.
This text editor will be using CRDT (conflict-free replicated data type) and IPFS
What is the goal or outcome of your session?
Help everyone understand the importance of the distributed web and how there are tools and mechanisms to make it possible
If your session requires additional materials or electronic equipment, please outline your needs.
Just projector, good wifi (or ethernet) will be fine.
Time needed
60 mins