2 Glossary
Philip (a-0) edited this page 2024-02-25 09:47:10 +00:00

App

Software using ubisync by connecting to the locally installed ubisync instance

Element

Smallest individually shareable chunk of data. May contain data of arbitrary structure. Write conflicts (different peers modifying content simultaneously) can only occur within an element. Peers modifying different elements simultaneously must not cause write conflicts. An Element belongs to exactly one pot

Family

A group of peers which assume absolute trust among each other. A peer can demand any elements, pots, etc. from its family members without permission checks. Peers proactively share the metadata of their pots within their family to allow others to subscribe to data they are interested in.

Message

Data format used in communication between peers. They can contain administrative data (like resolving a peer's name), or payload data (like element updates, creations etc.).

Node

Brigdes the gap between a peer in the ubisync network and apps wanting to interact with it. The node contains the peer, a means of storing data such as elements, permissions etc., and should expose an API for apps to use.

Typically, each device of a user runs exactly one node.

Peer

Peers are the network perspective of a node. At any given time, a peer has exactly one active I2P identity. Peers provide the ability to communicate with other nodes to their local node, not performing any higher-level tasks such as conflict resolution etc.

Pot

Group of elements, every element belongs to exactly one pot. A pot is created with an app type, suggesting a way the elements may be used. Thus, the pot and its app type provides context to the loose collection of tagged elements inside it.

Typically, an application using ubisync uses exactly one pot to store all its data. When an app on a different peer uses the same pot, they have a common view on the data and can be called "synchronized"