ecosistema-social-decentral.../protocols/gun.md

3.0 KiB

GUN

GUN is a decentralized graph database, and an ecosystem of tools.

The stack includes:

  • ERA (economic system)
  • AXE (routing)
  • DAM (networking)
  • RAD (storage)
  • SEA (security)
  • GUN (data)
  • HAM (conflict resolution)

Network structure

Decentralized/p2p. Uses data replication via message passing.

It daisy-chains, routes, & relays messages.

It also works over most existing transports: WebRTC, UDP multicast, TCP/HTTP -> Websocket, etc.

Identity

GUN supports multi-device login that is cryptographically secure yet uses "normal" UX. (?) This technique can be extended to secure password resets (no servers).

There is a password recovery mechanism using a 3-Friend-Authorization approach.

Iris adds a reputation system to SEA which provides the underlying cryptographic Security, Encryption, & Authorization.

Data

  • Data models (graphs, key/value, document, table, relational, hyper-graphs)
  • Data availability (AP, strongly eventually consistent)

Monetization

  • Business models (Open Source, donation, enterprise, + decentralized PaaS, dBaaS, SaaS, Marketplace)
  • Payment (AXE bandwidth credits)

Filtering

  • Queries (GUN, GraphQL, historical prototypes of SQL, Mango [Mongo])

Moderation

Iris and NAB (see above link).

  • Protocol level (no)
  • Server level (no)
  • User level (yes)
  • Content level (yes)

Privacy and Access Control

  1. Cryptographic keys are assigned to roles, groups, or data points.
  2. This information is either used to derive a shared ECDH secret to decrypt (read)
  3. Or used to load collaborative multi-writer edits (signed).

Interoperablity

Plugins, such as backup storage on centralized databases or file systems, can be used to extend GUN.

Scalability

A user reported a 70% cost savings on cloud bills on a project with 1M+ page loads a month.

Metrics

Implementations

Whitepaper