Skip to content
jamixirPublic

About

The Polkadot Virtual Machine (PVM) in Rust, used by the Jamixir JAM client

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

83 Commits

Folders and files

Repository files navigation

pvm-rust

The Polkadot Virtual Machine (PVM) in Rust, implemented from the JAM Gray Paper. Jamixir, an Elixir JAM client, runs it through a Rustler NIF. The crate itself has no Elixir dependency.

Layout

  • core: memory, registers, program and bitmask handling
  • encoding: program blob decoding (deblob) and encoding
  • init: program initialisation and memory layout
  • vm: instruction dispatch, single-step execution, gas, child instances, tracing
  • execution: entry points for disassembled and linked programs

Tests

git clone https://github.com/jamixir/jamtestvectors ../pvm-test-vectors
cargo test

The unit tests need nothing else. The vectors suite reads the PVM test vectors from ../pvm-test-vectors/pvm/programs/.

License

Apache-2.0 or MIT, at your option.

About

The Polkadot Virtual Machine (PVM) in Rust, used by the Jamixir JAM client

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages