Live data from Hacker News

OrbitDB: Peer-to-peer databases for the decentralized web

github.com

61–70 of 119 posts

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#61

p2p DB in JS using CRDT. That sounds a lot like GUN. How does OrbitDB compare to GUN?

> How does OrbitDB compare to GUN? I went to a meetup where the creator of GUN gave a presentation. To this day, it was the single strangest presentation I've ever experienced. The presentation had numerous obvious errors. The audience kept pointing out major misunderstandings and errors about distributed systems. I remember one awkward moment where someone pointed out a glaring error in the author's model of conflic…

I wasn't at this specific presentation, but I've seen other presentations by the author, and had basically the same takeaway. Snake oil.

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#62

Earlier quoted context omitted.

This is an open problem. It might be surprising to find out that it's quite difficult. CRDTs usually work as last-write-wins, meaning that if you have a key-value store, the last update to update a key 'wins' the value via the way oplog reduction works. If you reverse that to a FIRST-write-wins log, you can grant permissions and ownership on a first-come, first-serve basis. Revocation, then, becomes the issue. What d…

> CRDTs usually work as last-write-wins Um.

Ah, sorry, yes I stepped on a rake and whacked myself in the face here.

What I meant, since LWW is nomenclature for an alternative to CRDTs, is that the last writer by _logical clock_ in a CRDT, not by _wall clock_ time, will "win" the key.

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#63

A database implemented in JS; very encouraging. I guess performance and robustness were not a priority.

Well, I imagine you'll be happy to know that some of us have begun IPFS implementation in Rust: https://github.com/ipfs-rust/rust-ipfs

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#64
post #45

Hey folks! I'm https://twitter.com/aphelionz . One of the maintainers of OrbitDB. Happy to answer any questions you might have. I'll also be in the thread answering folks as well.

Hello! Thanks for maintaining an open source project. I am excited to see IPFS take off. Some basic questions, as I am still struggling to see the use case of this project. * How did this project get started? What problem is it trying to solve? * Are there any real world examples of where this project is used?

> * How did this project get started? What problem is it trying to solve?

OrbitDB got started because we wanted to build serverless applications, especially for the web (ie. applications that run in the browser.) Serverless meaning "no server" and no central authority, ie. something that can't be shut down.

OrbitDB gives tools to build systems and applications where the user owns their data, that is, the data that is not controlled by a service. As a way of simple example, imagine Twitter that doesn't have one massive database for all tweets, but rather you'd have one database for each user.

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#65

Earlier quoted context omitted.

> CRDTs usually work as last-write-wins Um.

Ah, sorry, yes I stepped on a rake and whacked myself in the face here. What I meant, since LWW is nomenclature for an alternative to CRDTs, is that the last writer by _logical clock_ in a CRDT, not by _wall clock_ time, will "win" the key.

> LWW is nomenclature for an alternative to CRDTs

I think you're still stepping on rakes...

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#67

A database implemented in JS; very encouraging. I guess performance and robustness were not a priority.

> I guess performance and robustness were not a priority.

You'd be surprised how well JS does on both fronts, in addition to being able to run across platforms :)

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#68
post #27
post #17

Earlier quoted context omitted.

Can you elaborate? Source code to GUN is right here: https://github.com/amark/gun/tree/master/src

Yes sorry for not doing this. In the source code folder, please open any random file and try to understand what the code does. I once tried to fix a bug that I found in GUN but I gave up after just trying to figure out what the code is supposed to do.

I wrote the beginnings of a Gun implementation in Go based on my reverse engineering of the Gun JS code: https://github.com/cretz/esgopeta. I halted development as I am no longer needing it, but the code might give some insight (assuming it's even accurate, never made it to significant testing).

Re: OrbitDB: Peer-to-peer databases for the decentralized web

#70

Earlier quoted context omitted.

This is an open problem. It might be surprising to find out that it's quite difficult. CRDTs usually work as last-write-wins, meaning that if you have a key-value store, the last update to update a key 'wins' the value via the way oplog reduction works. If you reverse that to a FIRST-write-wins log, you can grant permissions and ownership on a first-come, first-serve basis. Revocation, then, becomes the issue. What d…

> CRDTs usually work as last-write-wins Um.

Can you elaborate?
Post reply on HN