Skip to content
Lee Thomas edited this page Jun 2, 2022 · 17 revisions

Warning, many of these entries added by a new user whilst attempting to get to grips with GUN:

_

A reserved field in a gun node object acting as a key for the node's metadata. E.g.

    {    
        "_" : { ... }, // meta data object
        ...
    } //node object

#

  1. Symbol used to denote a node's soul in a node's metadata object.
  2. Symbol used to enter frozen space, roughly "the following is a hash, data got from this context should match it"
  3. Symbol used to denote a gun reference when acting as a key in a node's object

>

Symbol used to denote state vectors (represented by an number) for a node's properties. Used by the Hypothetical Amnesia Machine.

~

Symbol used to say "the following represents an public key"

@

Symbol used to say that "the following text is an alias to a public key"

Alias

A mapping from a utf encoded string to a public key. denoted with @, e.g. @bob, @alice. Note. Unclear to me whether this applies locally in a user context or globally across whole gun system.

Graph

An object that contains unique nodes.

Graph. Universe. Node., GUN

this

Hypothetical Amnesia Machine, HAM

A state machine held by each node that is used to determine which is the correct version of a given object to use.

Mesh

A collaborative network where each peer is responsible for forwarding others' messages (and responding to requests if it has the data). Refers to the concept of a mesh network.

Node

An object within a graph. It can contain primitive values, but not other objects (only pointers to other nodes). Also known as a vertex in graph theory.

Partition

When one group of peers can't communicate another, such as two servers losing connection between each other, but still serving clients.

Peer

A single device on a mesh network. Usually takes both roles of client and server.

Pseudo-merge/Union

An intelligent merge between two objects. Unlike Object.assign, it uses the HAM conflict resolution engine to ensure updates are merged commutatively.

Pseudo-node/Key Node

A special type of node in gun used for adding secondary indices (via the .key() method). It provides a list of unique IDs to pseudo-merge into an aggregate node.

Security, Encryption, Authorization., SEA

The library that handles security, encryption and authorisation.

Relation, Reference, Gun reference

A link from one graph node to another. The is denoted by the # in the node's object. Looks like { '#': 'aOCLhos5ADx3' }

Root, Root node

The zeroth node, the node with no key. The node at which a users starts to traverse their view of the Universe

Soul

A synonym for an object Universally Unique Identifier. Each node in gun has one (named "#" in the object metadata).

Universe

The sum total of all nodes and graphs across every peer in the application.


Search terms: acronym, backronym, stands for, meaning define, GUNdb, GUNjs

This wiki is where all the GUN website documentation comes from.

You can read it here or on the website, but the website has some special features like rendering some markdown extensions to create interactive coding tutorials.

Please feel free to improve the docs itself, we need contributions!

Clone this wiki locally