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
The source is written in Typescript. Run yarn run compile
or make build
.
Enter nix-shell
before running tests.
Run all tests
make test
make test-unit
make test-integration
make test-e2e
Envoy is used by
- Chaperone
Envoy depends on
- Conductor
- Holo Hosting App (HHA)
- DNAs
- Read-only instance
- Service logger instance
- Hosted Agent instances
- WebSocket Server - used by public Agents for hosted hApp connections
- HTTP Server - used by Conductor for wormhole signing requests
- 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
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.
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).
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...
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