client
- a device or identifyable through an unique id, needs to have following secrets, may or may not be known to others.group
- a set ofclients
, clearly identifyable through an unique id.member
- aclient
that is currently part of thegroup
.known-client
- a client that is or has-been part of thegroup
.shard
- a part (or the whole) of the group secret that is known to theclient
.feed
- a append-only log (aka. hypercore)entry
- a single entry of many a feedfeed
request
- an entry to the feed that is not-yet signed.write
- an special kind of entry contains therequest
and all the known signatures for the request, it is also additionally signed by themember
that initiated thewrite
confirm-receipt
- a special kind of entry that verifies that amember
received it's newshard
.group-sign-key
- a secret that allows to write to the group feed. the group-sign-key is turned into shards using Shamirs Secretsgroup-feed
- a feed ofwrites
, contains all the writes that were signed, its the same for all clients - the source of truth.client-feed
- a feed ofrequest
s, contains all the requests, one perknown-client
and it also containswrites
andconfirm-receipt
.ephemeral
- data that is not persisted but may be communicated between the known peers.outbox
- a set ofephemeral
data that contains shards used to restore agroup-sign-key
or newshard
s to be stored by each of themembers
.requestee
- themember
that initially created therequest
.state
- exposed information of the client through the API. The state exposes information about theclient-state
andrequest-state
client-state
- state of a client as seen by another clients permissionsole-owner
-client-state
of a client when the group has only oneclient
. the client can freely change other operations.pending-add
-client-state
of a client that has been requested to be added to the group but hasn't finally been added.confirming-add
-client-state
of a client that has been confirmed to be added to the group but hasn't received the good news yet!pending-remove
-client-state
of a client that was requested to be removed from the group.removed
-client-state
of a client that was successfully removed.member
-client-state
of a client that has been added to the group successfully.
request-state
- state of arequest
by amember
pending
- initial state of the requestaborted
- aborted by the writer prior to writing it to thegroup-feed
processed
- request has been added to thegroup-feed
sync
- event when the latest known information of all clients has been exchanged with each other.