Skip to content
Unverified Commit 310ef5ce authored by Alexander Theißen's avatar Alexander Theißen Committed by GitHub
Browse files

revive: Limit the amount of static memory a contract can use (#5726)



This will make sure that when uploading new code that the declared
static memory fits within a defined limit. We apply different limits to
code and data. Reason is that code will consume much more memory per
byte once decoded during lazy execution.

This PR:

1) Remove the MaxCodeLen from the `Config` to we maintain tight control
over it.
2) Defines a single `STATIC_MEMORY_BYTES` knob that limits the maximum
decoded size.
3) Enforces them only on upload but not on execution so we can raise
them later.
4) Adapt the worst case calculation in `integrity_check`.
5) Bumps the max stack depth from 5 to 10 as this will still fit within
our memory envelope.
6) The memory limit per contract is now a cool 1MB that can be spent on
data or code.
7) Bump PolkaVM for good measure
8) The blob is limited to 256kb which is just a sanity check to not even
try parsing very big inputs.

---------

Co-authored-by: default avatarCyrill Leutwiler <[email protected]>
parent 08d171e3
Pipeline #497677 waiting for manual action with stages
in 1 hour, 5 minutes, and 36 seconds