Skip to content
🚀 💜 SVM - Spacemesh Virtual Machine
Rust C WebAssembly Other
Branch: develop
Clone or download
Pull request Compare This branch is 42 commits behind spacemeshos:develop.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE
contracts
crates
docs/assets
src
.dockerignore
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Cargo.lock
Cargo.toml
Dockerfile
LICENSE
README.md
legal.md

README.md

Build Status

Spacemesh Virtual Machine

Project Goals

  • Self-contained. Should be hosted by the Spacemesh Golang full-node and future Spacemesh Rust full-node
  • Built on top of wasmer
  • Future compatible for the SMESH programming-language (the language is still in a research stage).

Rust

SVM depends on the single-pass compiler of wasmer which requires the rust nightly release channel. More information about installing rust nightly can be found here

Build & Tests

The SVM project is organized into a couple of crates. The root crate is called SVM and it's a workspace crate.

In order to build the SVM project crates at once and run their tests:

cargo +nightly build
RUST_TEST_THREADS=1 cargo +nightly test --all

If you want to build & test in release mode execute:

cargo +nightly build --release
RUST_TEST_THREADS=1 cargo +nightly test --all --release

Note: since leveldb and rocksdb can't have parallel isolated connections to the same database (directory). That's why we ask cargo to run the tests serially (RUST_TEST_THREADS=1).

Docker

In order to build the Docker image

docker build -t svm-build .

Then, for spawning a new container

docker run -it svm-build

Roadmap

  • Infrastructure (see the SVM article)
  • Gas metering
  • Contract-to-Contract calls
  • Storage Data-Structures
    • Array
    • List
    • Hash
    • Set
    • Sorted-Set
    • Strings
  • Events with expiration
  • Contract dependencies

Supported Operating-Systems

  • Mac
  • Linux
  • Windows

Got Questions?

You can’t perform that action at this time.