Tutorial: Building a collaborative text editor over IPFS with Yjs in 10 minutes
youtube.com
youtube.com
This is also the tech that PeerPad is built on: https://peerpad.net && https://news.ycombinator.com/item?id=15624158
Collaborative editing is "solved" enough now that it's essentially a library to include, not an open engineering task.
And one that has an asymptotic algorithmic complexity bounded near O(N^2) or less to handle the massive workloads these things can see.
The webserver is there in this case to make life easier during dev, and to make it easy to call your local ipfs API service to do things like monitor the messages on the pubsub.
- https://ipfs.io/ipns/peerpad.net
- https://ipfs.io/ipfs/QmXhnaUzhiZ6EGvr2SwPgSZzVhfsTnzTW5EsXH6...
- http://localhost:8080/ipfs/QmXhnaUzhiZ6EGvr2SwPgSZzVhfsTnzTW...
And with the ipfs-companion browser extension:
- dweb:/ipns/peerpad.net
- dweb:/ipfs/QmXhnaUzhiZ6EGvr2SwPgSZzVhfsTnzTW5EsXH6TNnQcYD
- ipns://peerpad.net
- ipfs://QmXhnaUzhiZ6EGvr2SwPgSZzVhfsTnzTW5EsXH6TNnQcYD
Or by grabbing it using `ipfs get /ipns/peerpad.net` and clicking the html file in the resulting directory.
And to manipulate a datastructure you need software.
I am intrigued by your comment and your expectation about"decentralized", though.
And now I am curious: What were you expecting ?
[1] I know the security reasons behind this, I just find the hassle to be a counter-logical irksome, and insecure in most cases, hack.
The only considerations here are simplifying the programming model. AFAICT, nothing in this demo needs a dedicated node server, it just simplifies the explanation.
Odds are though that if you're going to need your own personal centralization of some sort if there is any concept of user privilege in your system.