This is the source code for the escrin-runner
platform services and the @escrin/worker TypeScript library.
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 lints -
pnpm format
- attempts to fix lints in-place -
pnpm build
- builds the platform services and the TypeScript library -
pnpm 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).
To publish this library, bump the version in package.json
, push that change to main
, and then run pnpm publish
.
- 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!