Escrin - Worker
This is the source code for the escrin-runner
platform services and the @escrin/worker TypeScript library.
Developing
You can get started by installing pnpm
and running pnpm install
.
Once the dependencies have been installed, you can run the package scripts.
The important ones are:
pnpm lint
- reports formatting errors and Solidity lintspnpm format
- attempts to fix lints in-placepnpm build
- builds the platform services and the TypeScript librarypnpm watch:build
- watches files and rebuilds them when they change
To run the platform services locally, compile escrin/workerd and run
workerd serve --verbose config/local.capnp
.
To create a self-contained escrin-runner
, use workerd compile config/local.capnp > escrin-runner
, which can then be run without additional arguments (though --verbose
is often helpful).
Publishing
To publish this library, bump the version in package.json
, push that change to main
, and then run pnpm publish
.
Points of Interest
- src/index.ts - the entrypoint of the @escrin/worker TypeScript library
- workerd_config.capnp - the configuration of the
escrin/workerd
that runs the platform services and sets up the Smart Worker sandbox - src/runner.ts - the entrypoint service of the
escrin-runner
that spawns Smart Workers when requested - src/env/iam - a service linked to Smart Workers that provides decentrized key and identity management.
- src/env/tpm - a service that provides access to the local Trusted Platform Module, which can be used to remotely attest to relying parties
As you work on the code, please feel encouraged to file issues or participate in the Discord community!