Skip to content

Howitzer is a Fault Proof VM based on the MIPS64 architecture

License

Notifications You must be signed in to change notification settings

clabby/howitzer

Repository files navigation

Howitzer

An evolution of the OP Stack's Cannon FPVM, written in pure Rust.

Ci License OP Stack

What's a Howitzer?OverviewDockerContributingDocumentationCredits

What's a Howitzer?

Howitzer is a MIPS64 emulator designed to simulate deterministic execution within a single MIPS thread context both natively and on the EVM. Its primary objective is to execute Fault Proof Programs such as kona or op-program for the sake of the OP Stack's interactive dispute protocol.

TL;DR:

  • It's Rust code
  • ...that was originally Go code
  • ...that runs an EVM
  • ...emulating a MIPS64 machine
  • ...that was originally a MIPS32 machine
  • ...running compiled Rust or Go code
  • ...that runs an EVM

Overview

  • howitzer - The binary for executing MIPS64 programs natively on top of Howitzer with a detached preimage server.
  • howitzer-kernel - High-level library for running the Howitzer FPVM with a detached preimage server.
  • howitzer-fpvm - Contains the native implementation of the MIPS thread context emulator.
  • howitzer-contracts - Contains the EVM implementation of the MIPS thread context emulator.

Docker

The docker image for howitzer is located in the docker directory, and can be built using the script provided.

Contributing

To get started, a few dependencies are required:

Testing

just test

Linting and Formatting

just lint

Running Benchmarks

just bench

Documentation

Rustdocs are available by running cargo doc --open after cloning the repo.

Specification

The specification for both Cannon and the preimage oracle can be found in the Optimism monorepo.

Credits

This repository is heavily inspired by the original Cannon VM, built by George Hotz and members of the OP Labs team. The original implementation is written in Go, and can be found in the Optimism monorepo. All credits for the original idea and reference implementation of this concept go to these folks.

About

Howitzer is a Fault Proof VM based on the MIPS64 architecture

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published