Home

Awesome

Moved to https://github.com/ethereumproject/evm-rs

SputnikVM: Rust Ethereum Virtual Machine Implementation

Build Status License

NameDescriptionCrates.ioDocumentation
sputnikvmCore library for the Ethereum Virtual Machinecrates.ioDocumentation
sputnikvm-statefulMerkle Trie stateful wrapper for SputnikVMcrates.ioDocumentation

Features

Supported Networks

Supported Networks

NetworkCrates.ioDocumentation
Ethereum Classiccrates.ioDocumentation
Ethereumcrates.ioDocumentation
Ellaismcrates.ioDocumentation
Ubiqcrates.ioDocumentation
Expansecrates.ioDocumentation
Musicoincrates.ioDocumentation

Precompiled Contracts

The core library has the initial four precompiled contracts embedded. To use the bn128 and modexp precompiled contracts introduced by the Byzantium hard fork, pull the following crates.

NameDescriptionCrates.ioDocumentation
sputnikvm-precompiled-bn128bn128 precompiled contractscrates.ioDocumentation
sputnikvm-precompiled-modexpmodexp precompiled contractscrates.ioDocumentation

Related projects

Dependencies

Ensure you have at least rustc 1.26.2 (594fb253c 2018-06-01). Rust 1.25.0 and before is not supported.

Documentation

Build from sources

SputnikVM is written Rust. If you are not familiar with Rust please see the getting started guide.

Build

To start working with SputnikVM you'll need to install rustup, then you can do:

$ git clone git@github.com:etclabscore/sputnikvm.git
$ cd sputnikvm
$ cargo build --release --all

Testing

We currently use two ways to test SputnikVM and ensure its execution aligns with other Ethereum Virtual Machine implementations:

To learn more about building SputnikVM from source please read wiki page Building and Testing

License

Apache 2.0