Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CRDTs #34

Open
staab opened this issue Jul 29, 2024 · 2 comments
Open

CRDTs #34

staab opened this issue Jul 29, 2024 · 2 comments

Comments

@staab
Copy link

staab commented Jul 29, 2024

Replaceable events in general are bad, but especially lists, which can have race conditions when used from multiple clients. p2panda has an excellent design which accounts for this.

@staab staab mentioned this issue Jul 29, 2024
@mikedilger
Copy link
Owner

Can you summarize how p2panda solves this?

@staab
Copy link
Author

staab commented Jul 30, 2024

Entries are like nostr events, with a hash + signature, with the following differences:

  • Payloads are separate from entries, so you can download histories without downloading content.
  • They provide a backlink to the previous entry in the log.
  • logs (merkle trees representing a series of entries) are differentiated by a log id, reducing contention over histories.
  • Entries have sequence numbers, which can help with detecting and reconciling forks.
  • Conflicts are resolved deterministically, resulting in eventual consistency. They can also be resolved manually with a merge operation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants