snarkVM
snarkVM copied to clipboard
Introduce a prototype program registry
Motivation
This PR introduces a prototype program registry where programs must be deployed before use. In it's current form, the deployed program is stored in the Execution struct.
How deployment transactions are constructed:
- Create a program deployment
Requestthat includes the program and it's corresponding function vks. - The Ledger checks that the program doesn't already exist in the registry.
- Program is added to the registry when the block is mined. (Also included in the
Executionstruct of the deployment transaction).
There is no check for whether the vk associated with a program is valid, right?
Not at the moment, I have a TODO for that check. Was thinking to hold off on it, since we'll be storing the IRs down the line anyways.