You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the context of Kakarot, we used DictAccess to store accesses to the EVM state. For each new context, we needed to create a whole new dict (new segment, new dict manager). This is highly inefficient as illustrated in the first tx of block
What
Stop to copy segments. We only need to make sure that the values returned in context are
consistent with a DictAccess => regular dict squashing
consistent with the previous (main) state => the prev values of this small segments needs to be consistent with the values from the main segment.
How
When creating a new context
create a new segment
at the end of the context
if it reverts, squash and append all the prev keys to the main dict segment
if it succeeds, memcpy to the main segment OR squash and append memcpy the squashed dict
The text was updated successfully, but these errors were encountered:
Why
In the context of Kakarot, we used DictAccess to store accesses to the EVM state. For each new context, we needed to create a whole new dict (new segment, new dict manager). This is highly inefficient as illustrated in the first tx of block
What
Stop to copy segments. We only need to make sure that the values returned in context are
How
When creating a new context
The text was updated successfully, but these errors were encountered: