What is the Execution Environment?
Enclaves, that are being used as executors, can use varied enclave images based on following parameters:
- Hosting OS
- Sand-boxing utility
- Runtime environments
- Networking mechanism
Why is it needed?
Varied requirements from users. Each kind of workload works best with a suitable environment. Cost also varies for different environments. Users can balance between usability, cost and performance.
What are the various environments available?
- Workerd runtime for JS and WASM programs
- EVM based runtime for Solidity compiled programs
- Docker environment for running containerized applications
How to manage multiple environments?
- Environment should be verifiable on-chain
- User is able to choose the environment for the job
- Job should be only assigned to those executors providing the required environment
- Pricing would be different depending upon the environment, hence the USDC deposits would be according to that
- One executor can only support one environment
- Executor environment should be verified upon getting the response (separate verifying contracts for different environments)