Skip to main content
cannon is the OP Stack’s fault proof virtual machine (FPVM): an onchain MIPS instruction emulator that lets a disputed L2 state transition be re-executed, one instruction at a time, on L1.

Overview

cannon has two halves that must behave identically:
  • Onchain MIPS64.sol — a Solidity implementation of big-endian 64-bit MIPS (MIPS64r1) instruction execution, used to verify a single disputed instruction on L1.
  • Offchain mipsevm — an instrumented emulator of the same instruction set that runs the full program and produces the witness data needed to repeat any one step onchain.
The program cannon executes is the fault proof program, kona-client, compiled to a MIPS ELF binary; the kona-host binary runs alongside as the preimage server that supplies chain data during execution. Together they make fault disputes resolvable: participants bisect an execution trace down to a single MIPS instruction, and that one instruction is proven onchain. Who runs it: dispute game participants, not everyday node operators. op-challenger invokes the cannon binary automatically when a fault dispute reaches the execution-trace stage, and chain operators build cannon prestates when configuring permissionless fault proofs. For how cannon fits into the dispute game, see the fault proofs explainer and the Cannon and MIPS deep-dive pages.

Get started

  • Cannon usage — the in-repo README walks through building cannon, loading a kona-client ELF into an initial VM state, and running the emulator.

How-tos

Configuration & flags reference

  • cannon has no configuration reference page on this site yet; it is configured entirely through CLI flags, documented by cannon --help and the in-repo README.

Releases