Crates.io | zksync_multivm |
lib.rs | zksync_multivm |
version | 27.0.0-non-semver-compat |
source | src |
created_at | 2024-07-12 13:23:19.766139+00 |
updated_at | 2025-03-21 16:59:20.486119+00 |
description | ZKsync out-of-circuit VM |
homepage | https://zksync.io/ |
repository | https://github.com/matter-labs/zksync-era |
max_upload_size | |
id | 1300683 |
size | 4,115,933 |
This crate represents a wrapper over several versions of VM that have been used by the ZKsync Era node. It contains the glue code that allows switching the VM version based on the externally provided marker while preserving the public interface. This crate exists to enable the external node to process breaking upgrades and re-execute all the transactions from the genesis block.
If you want to add unit tests for the VM wrapper, consider the following:
testonly
module,
and then instantiate tests using this logic for the supported VM versions. If necessary, extend the tested VM trait so
that test logic can be defined in a generic way. See the testonly
module docs for more detailed guidelines.vm_latest
, vm_fast
and
shadow
). shadow
tests allow checking VM divergences for free!