Protocol environment improvements - Backlog
The protocol environment (src/lib_protocol_environment/) (a.k.a. proto-env, a.k.a. environment) is a library that the Tezos protocols are compiled against: the protocols do not have access to the OCaml Stdlib nor the unrestricted Octez libraries, instead they must do with a subset which is deemed safe. This subset is bundled into this protocol environment.
The protocol environment needs regular additions (e.g., to support new cryptographic primitives) and amendments (e.g., to mirror changes in underlying APIs). However, because the protocols are immutable once injected, we need the protocol environment to be entirely stable. This has two major consequences:
- Versioning: Rather than modifying the existing environment, we make new versions of the environment living side-by-side with the previous iterations. At the time of writing there are versions V0 to V6.
- Backwards compatibility: Early versions of the environments were written against old versions of the dependencies. These dependencies have evolved. Thus there are backwards compatibility layers for the old environments to provide the legacy interface the old protocols expect.
As a consequence of these two points, the technical debt on the protocol environment accrues faster than in other libraries.
This milestones aims to gather all suggestions of improvements of the environment, ranging from "this should exists in the environment" to "let rework the environment architecture to make our lives easier".
Then, at some point, we can pick a bunch of this and schedule a proper project to tackle them.