peer-base / peer-star

Distributed Applications and their internal building blocks exposed as reusable components that can be used for all kinds of p2p usecases
MIT License
45 stars 8 forks source link

CRDT challenges #4

Closed pgte closed 5 years ago

pgte commented 6 years ago

Current CRDT implementations face these issues. Do you have a running plan to address these?

pgte commented 6 years ago

@fritzy ping

fritzy commented 6 years ago

Outside of Identity & Persistence, these are all optimization challenges. In order to address an optimization, we must first provide a tool for measuring performance and take a baseline. Then we can evaluate where we are and where we want to be against specific practical goals. In this case, when can peer-crdt be fast enough and long lived enough to provide a suitable replacement for peerpad?

If the answer is that the current performance, according to the measuring tools, are not sufficient for our goals, then we can review proposed optimizations, propose more, implement and test them, and determine if they get us enough closer to our goals to be worth finalizing/merging.

The specific plan for optimizations pertaining to peer-crdt is here https://github.com/ipfs-shipyard/peer-crdt/issues/7

For areas in which I'm not an SME, I ask that I not be given responsibility for them in the near term.

pgte commented 6 years ago

About persistence:

Using peer-crdt it should be very easy to set up a replicating node that follows the CRDT without knowing about the content of the operations by using crdt.replicate(id). This allows a node that follows and replicates the operation data produced by all the other nodes , without having to know how to decrypt the content.

This works because the DAG structure for a CRDT operation leaks the ids of the parents, while encrypting only the content of the operation itself.