8. A commit is a signed root with a clock
A commit names the DID, the tree root, a TID revision that only increases, and a signature; because the tree is a Merkle search tree, a change touches only one path, so a commit's diff is a few blocks; no other server can forge it, but your own host holds the key.

8. A commit is a signed root with a clock

A commit names the DID, the tree root, a TID revision that only increases, and a signature; because the tree is a Merkle search tree, a change touches only one path, so a commit's diff is a few blocks; no other server can forge it, but your own host holds the key.

This is the unit of sync and the unit of trust.

Each version of a repository is a commit: a sealed page. It names the account, the root of the tree, a revision, and a signature.

The revision is a TID. It only goes up. It is a logical clock: anyone can tell which commit is newer.

The tree is a Merkle search tree. Change one record, and only the path from it to the root changes.

So the difference between two commits is a few blocks. That is what travels when your repository changes.

And the commit is signed with the key in your DID document. No other server can forge a version of you. Your own host can: it holds the key. So you choose it, and you can leave it.

For developers. A commit object also carries a format version (fixed at 3) and a prev pointer to the previous commit, which is usually null today; the video leaves both out for the ear.

Check yourself. What does the rev field let a stranger decide without trusting anyone?

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime

Connections0

Connections show where other documents or comments link to this document.

Related documents

Loading connections…