radicle-heartwood-lfs/radicle-cob/src
Alexis Sellier aacacf872f
cob: Use `EntryId` as the operation identifier
By introducing a small limitation: only allowing entries in the change
graph to be addressable, instead of individual operations; we
drastically simplify the CRDT implementation.

There are four advantages:

1. Op ids are just regular SHA-1s
2. There's no need for relative IDs, ops never refer to other ops within the
   same commit
3. There's no need for a nonce, since commits can't collide, and neither can op IDs
4. `OpId` can just be an alias of `EntryId`

The disadvantage of course, is that we have to be mindful of how we
create op transactions, since each transaction creates an addressable
unit. For example, we must not include multiple patch revisions in the
same transaction.
2023-03-09 17:08:56 +01:00
..
backend cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
change cob: Use hashes for operation ids 2023-02-27 17:11:48 +01:00
change_graph cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
history cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
object cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
signatures radicle-cob: port collaborative objects 2022-11-04 16:11:18 +00:00
test cob: Don't require a local fork to exist 2023-03-01 15:40:30 +01:00
backend.rs radicle-cob: port collaborative objects 2022-11-04 16:11:18 +00:00
change.rs crypto: Use `ssh-key` crate for signatures 2023-02-17 11:53:46 +01:00
change_graph.rs crypto: Use `ssh-key` crate for signatures 2023-02-17 11:53:46 +01:00
history.rs cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
lib.rs cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
object.rs cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
pruning_fold.rs radicle-cob: port collaborative objects 2022-11-04 16:11:18 +00:00
sign.rs radicle-cob: port collaborative objects 2022-11-04 16:11:18 +00:00
signatures.rs crypto: Use `ssh-key` crate for signatures 2023-02-17 11:53:46 +01:00
test.rs radicle-cob: test parse_refstr 2022-11-17 17:42:22 +00:00
tests.rs cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
trailers.rs radicle-cob: simplify trailers module 2023-02-13 13:30:08 +01:00
type_name.rs Fix issue with colliding doc files 2022-12-09 14:37:36 +01:00