As of Version 0.11 SputnikVM passes every test in the ETH test suit up to Constantinople hard-fork,
which essentially means that it can be used with the ETH network.
SputnikVM API is now more agile then ever: the new DynamicPatch API enables the patch-based configuration
to be performed at runtime, as opposed to static patches that were based on using the static generic types.
This change is particularly useful for multi-chain clients like multi-geth that cooperates with SputnikVM over
an FFI boundary. Now it may configure SputnikVM feature-wise in runtime, and not rely on a pre-defined set of network and fork specific constructors.
All that with keeping overhead as low as possible and completely zero-copy!
Therefore, we recommend switching to evm-network crate as a foundation for Patch-building,
evm-network-* crates are considered deprecated and may not be supported in the future releases.
New evm-network with a set of precompiled contracts and re-exports of Patch and DynamicPatch APIs.
Breaking changes in the Patch trait and related code
Testing
Testing framework for the JsonTests (VMTests from ETH Test Suite) have been majorly reworked,
now it generates a separate native Rust test for each testcase in the Json files, for debugging and subset runs convenience.
Version 0.11
What's new?
Network support
As of Version 0.11 SputnikVM passes every test in the ETH test suit up to Constantinople hard-fork, which essentially means that it can be used with the ETH network.
Related Pull Requests:
Changes:
API
SputnikVM API is now more agile then ever: the new DynamicPatch API enables the patch-based configuration to be performed at runtime, as opposed to static patches that were based on using the static generic types. This change is particularly useful for multi-chain clients like multi-geth that cooperates with SputnikVM over an FFI boundary. Now it may configure SputnikVM feature-wise in runtime, and not rely on a pre-defined set of network and fork specific constructors. All that with keeping overhead as low as possible and completely zero-copy!
Therefore, we recommend switching to evm-network crate as a foundation for
Patch
-building,evm-network-*
crates are considered deprecated and may not be supported in the future releases.Related Pull Requests:
Changes:
Patch
andDynamicPatch
APIs.Patch
trait and related codeTesting
Testing framework for the JsonTests (VMTests from ETH Test Suite) have been majorly reworked, now it generates a separate native Rust test for each testcase in the Json files, for debugging and subset runs convenience.
Related Pull Requests:
Changes:
Documentation
Other changes
rust-secp256k1
feature is enabled by defaultethereumproject
under the nameevm-rs
.evm
andevm-*
for related projects.Related projects
evm-ffi
received support of theDynamicPatch
API.deprecated
inevm-ffi
and are going to be removed in the future releases.Closes #32