Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.

Tutorial: How to build an Collaborative Editing Application with IPFS using CRDT #417

Closed
daviddias opened this issue Jul 12, 2017 · 16 comments
Assignees
Labels

Comments

@daviddias
Copy link
Member

@pgte just released the y-ipfs-connector and a Video Tutorial explaining how to use it!

image

The video is very fun to watch and impressive how it requires so few lines of code to get it all set up!

Video at: https://www.youtube.com/watch?v=-kdx8rJd8rQ

Awesome work @pgte 👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽

@ghost
Copy link

ghost commented Aug 28, 2017

I have been using YJs and its impressive. It allows applications to be built on top of ipfs.

I am considering porting ups to golang so that it can be used to build microaervice on top of ipfs.

The event queue must crucially be stored on highly redundant storage. So ipfs is perfect here.
The materialised views can also of course be on ipfs.

What I am missing is security at rest. Blockade and others store all data encrypted and this is a key complimentary requirement for this type of system.
Does ipfs have any support for security at rest and keys distribution ?

@pgte
Copy link

pgte commented Aug 29, 2017

It does not. At rest, you will have to encrypt your data, either by storing it encrypted in IPFS or, if you're worried only with data at rest locally, to implement a e encrypted data store (this last one is more far-fetched).

@pgte
Copy link

pgte commented Aug 29, 2017

Currently I'm working on peerpad, which aims to encrypt data at rest, but haven't yet. You can follow in this issue if you're interested.

@ghost
Copy link

ghost commented Aug 29, 2017

@pgte thanks for the update and your feedback... Really interesting work !

Where are you planning to store the key ?

  • in the client OS key store ?
  • generated into memory via a user / password combination. I saw blockade doing this and was not so sure how secure it is.

@pgte
Copy link

pgte commented Aug 29, 2017

@gedw99 In peerpad I don't plan to store it, it's in the URL, which you share if you want to give access to someone.

@ghost
Copy link

ghost commented Aug 29, 2017

ok nice and simple.
I guess the private key is stored off line ?
For the person your sharing with i guess they save it in their "friends" list ? This would allow them to get the first parties public key later when they no longer have the public key shared over the URL session.

@pgte
Copy link

pgte commented Aug 29, 2017

In peerpad each document has it's own set of keys.
You can find more in this doc.
Mind you that this security model suits well some use cases, but there are a lot other solutions for peer-to-peer security.

@harrshasri
Copy link

@pgte Hi Pedro Teixeira,
Thanks a lot! Can you rewrite this in Webpack or just send me the webpack config .js file ?
I am struggling integrating with my webpack build codebase.

@pgte
Copy link

pgte commented Apr 2, 2018

@harrshasri I'm far from a webpack expert, so I can't really help you on this.
What issues are you having?

@harrshasri
Copy link

Hey Pedro,
I Figured it out. I rewrote your application with Webpack.
So for folks who want to work on ES6 YJS And IPFS. Feel free to use it.

https://gist.github.com/harrshasri/eade60a3102859fc419e71435939437b

@pgte
Copy link

pgte commented Apr 4, 2018

@harrshasri great, thanks so much for sharing!

@pgte pgte closed this as completed Apr 4, 2018
@pgte pgte reopened this Apr 4, 2018
@0zAND1z
Copy link

0zAND1z commented Apr 19, 2018

This is great! Can we consume the CRDTs from a "net" based P2P GoLang CLI application.
Say next-gen vim if you will :)
Can someone help me out if there's progress on this already?

@harrshasri
Copy link

@kggp1995 This is using yjs...As long as you can pipe it to node module of yjs you can

@0zAND1z
Copy link

0zAND1z commented Apr 19, 2018

Ok. How about this: https://github.com/orbitdb/ipfs-log

@harrshasri
Copy link

@kggp1995 I haven't worked much on ipfs-log but it is supposed to be the replacement for yjs. YJS is a hack until the CRDT libraries get stable.

@ghost
Copy link

ghost commented Apr 19, 2018 via email

@daviddias daviddias transferred this issue from ipfs-inactive/research-CRDT Feb 4, 2020
@daviddias daviddias added the CRDTs label Feb 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants