HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Tutorial: How to build an Collaborative Editing Application with IPFS using CRDT

IPFS · Youtube · 62 HN points · 1 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention IPFS's video "Tutorial: How to build an Collaborative Editing Application with IPFS using CRDT".
Youtube Summary
This is a tutorial on how to create Distributed Web Applications with CRDT (Conflict-Free Replicated Data Types) and the JavaScript Implementation of IPFS

*References:*
- IPFS - https://ipfs.io
- js-ipfs - https://github.com/ipfs/js-ipfs
- Code for the Demo - https://github.com/ipfs-labs/shared-editing-demo

*Acknowledgements:*
Both the y-ipfs-connector and this tutorial were created by Pedro Teixeira (https://github.com/pgte)
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Apr 24, 2019 · wk0 on IPFS Camp 2019
There are two 'code-along' style videos on the IPFS youtube page I found helpful

IPFS PubSub Demo: https://www.youtube.com/watch?v=Nv_Teb--1zg

Google Docs esque clone with CDRTs: https://www.youtube.com/watch?v=-kdx8rJd8rQ

Theres also a pubsub room example on the ipfs-shipyard github: https://github.com/ipfs-shipyard/ipfs-pubsub-room

Nov 27, 2017 · 62 points, 14 comments · submitted by KirinDave
KirinDave
Just an aside: Someone could make this a neovim, emacs/spacemacs, or sublime plugin in a heartbeat. It's easy to encrypt the traffic (although key-sharing is harder).

Collaborative editing is "solved" enough now that it's essentially a library to include, not an open engineering task.

moosingin3space
It is my hope that one day, we'll use IPFS and other similar tools to enable our apps to work effectively in mixed-connectivity environments.
KirinDave
Imagine a future version of IPFS that can recognize partitions and form sub-networks within an isolated network. Then, there's no difference between offline, isolated network, and public mode except for connectivity, and the way to import data is to have your inner nodes pin it!
moosingin3space
I really like this idea. Would improve the user-visible quality of wireless mesh networks where latency can be high.
KirinDave
I think the challenge to it is that DHT structures right now are not themselves commutative. We need a CRDT foundation for DHTs, themselves!

And one that has an asymptotic algorithmic complexity bounded near O(N^2) or less to handle the massive workloads these things can see.

z3t4
Where's the code for implementing support for textarea, ace, codemirror etc ?
gravypod
Why did the browsers drop connection to each other when he turned off wifi? Shouldn't they still be able to see each other? Do they need to talk to a 3rd party?
timthelion
If it is decentralized, then why do I need node-js? Why do I need a webserver?
lgierth
PeerPad, which evolved from the data structure in this tutorial, can totally fine be run from any location:

- https://peerpad.net

- 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.

yosamino
Because the datastructure being manipulated is the "decentralized" feature here.

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 ?

timthelion
I was expecting a standalone html file that could be run by clicking on it, or, due to that "same origin" b_llsh*t [1], at least served using any generic http server, not one which has to be specially configured and installed.

[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.

KirinDave
I suspect you didn't read my reply, because if you did you'd recognize that [1] is simply not true.

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.

KirinDave
Actually, you absolutely could host the website inside IPFS and if you don't mind going to an incomprehensible ipfs.io/ipfs/___ address, it'll fetch.

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.

lgierth
Oops, the URL in the video is outdated, the repo now lives at https://github.com/ipfs-shipyard/shared-editing-demo

This is also the tech that PeerPad is built on: https://peerpad.net && https://news.ycombinator.com/item?id=15624158

HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.