Skip to content

Latest commit

 

History

History
115 lines (76 loc) · 3.33 KB

CONTRIBUTING.md

File metadata and controls

115 lines (76 loc) · 3.33 KB

Setup

Development environment

  • Node.js 12

Project employs

  • Typescript
  • JSDoc

Setup

Nix shell will provide packages listed in ./default.nix nativeBuildInputs

nix-shell

Inside the nix shell

yarn install

Compile (Typescript)

The source is written in Typescript. Run yarn run compile or make build.

Testing

Enter nix-shell before running tests.

Run all tests

make test

Unit tests

make test-unit

Integration tests

make test-integration

e2e tests

make test-e2e

Architecture

Relationships

Envoy is used by

  • Chaperone

Envoy depends on

  • Conductor
    • Holo Hosting App (HHA)
    • DNAs
      • Read-only instance
      • Service logger instance
      • Hosted Agent instances

Incoming Connections

  • WebSocket Server - used by public Agents for hosted hApp connections
  • HTTP Server - used by Conductor for wormhole signing requests

Outgoing Connections

  • Admin (Admin Server) - used for creating new hosted Agents and their installed-apps
  • Internal (Conductor) - used for service logger traffic
  • Public (Conductor) - used for hosted agent traffic

Concepts

Anonymous Agent

These are ephemeral Agent identities that can connect to any Host running an anonymous installed-app (which runs the cells attached to the anonymous id for this happ). When an anonymous connection is made, Envoy does not need to do anything special for that Agent.

Signed-in Agent

These are persistent Agent identities created by a user on the client-side. When a connection is made, Envoy must know if this is a new (sign-up) or existing user (sign-in).

Sign-up

The Agent is connecting to this Host for the first time and has never used this hApp

Process

  • install cells for each of the hApp's DNAs
  • and continue to sign-in process...

Sign-in

The Agent has used this hApp before and expects this Host to have their installed-happs running

Process

  • Register Agent's wormhole endpoint in RPC events
  • start cells for each of the hApp's DNAs

Process

Requests with no writes

Requests that write