Terminology
The following terms are used when describing the Dat Protocol.
Terminology Currently in Use
- feed: The main data structure in Hypercore. Append-only log that uses multiple data structures and algorithms to safely store data.
- data: Atomic pieces of data that are written to the feed by users.
- keypair: An
Ed25519
keypair used to encrypt data with. - signature: Certificate that proves a data structure was created by a specific keypair.
- tree: A binary tree mapped as a
flat-tree
to keep an index of the current data. - flat-tree: Mapping of a series of integers to a binary tree structure.
- bitfield: Space-efficient data structure used to figure out which data you have and what data you don't. Meant to always be kept in memory because it's small enough.
- run-length-encoding (RLE): Basic compression scheme used to compress bitfields when sending over the wire.
- parent node: A parent has two children under it, and is always odd-numbered. Node 3 is the parent of 1 and 5.
- leaf node: A node with no children. A leaf node is always even-numbered. Nodes 0, 2, 4, 6 and 8 are leaf nodes.
- sibling node: The other node that shares a parent with the current node. For example nodes 4 and 6 are siblings.
- uncle node: A parent's sibling. Node 1 is the uncle of nodes 4 and 6.
- root node: A top-most node where the full tree under it is complete (e.g. all parent nodes have 2 children). Node 3 is a root node.
- node span: The two nodes that are furthest away in the sub-tree. The span
of node 1 is
0, 2
. The span of node 3 is0, 6
. - right node span: The left-most node in the span. The right span of node 1 is 2. The right span of node 3 is 6.