In the did branch, we're migrating away from a linear chain of commits. We still wan to have verifiable history, though. The most important part of it is the first commit: the genesis commit, as it validates the identity of the resource. I think we should check this a lot, maybe every client on parse by default (could be disabled by the user).
The genesis commit data should be part of the loro oplog, stored as efficiently as possible. It should contain:
- The drive id
- The timestamp (we can use loro timestamp althought its per second, not ms)
- A nonce (randomness to allow multiple genesis commits per second)
- The pubkey / agent ID
On subsequent commits, we verify the signature of the update contents / current state.
In the did branch, we're migrating away from a linear chain of commits. We still wan to have verifiable history, though. The most important part of it is the first commit: the genesis commit, as it validates the identity of the resource. I think we should check this a lot, maybe every client on parse by default (could be disabled by the user).
The genesis commit data should be part of the loro oplog, stored as efficiently as possible. It should contain:
On subsequent commits, we verify the signature of the update contents / current state.