Skip to content

0004 Hermes application loading procedure

Author:
Alex Pozhylenkov <alex.pozhylenkov@iohk.io>
Created:
2024-08-11
Status:
Draft

Context

Hermes, as an engine that runs user-developed applications, should have the functionality to load and execute the provided assembled application. This process must validate the application's integrity and correctness and prepare the application's state before executing it.

Assumptions

Hermes application package could be corrupted or modified.

Decision

During each application loading and running process, the application package should be provided. All possible validations and initialization should be performed based on the package data.

Risks

  • Potential bad user experience (UX) for each application run due to time consumption in validations and state preparation

Alternatives

Split loading application (installing) and running into two different procedures. So during loading all validations will be performed along with state initialization and saved somewhere. Run procedure will not require an original application package and will pick up already validated and initialized data to run application.

Consequences

  • Adds better integrity and consistency over application's initial state/code among each application run.
  • Eliminates possibility to execute corrupted application.