RISC-V PVM can produce and verify outbox proofs

Closes RV-881.

What

This MR integrates outbox proof support for the RISC-V PVM into the protocol and the rollup node.

Why

The rollup node needs to be able to produce outbox proofs for the RISC-V PVM. The protocol needs to be able to verify outbox proofs for the RISC-V PVM.

How

Commit by commit:

  • The octez-riscv version is bumped
  • The output proof type and related functions are exposed in the OCaml API for octez-riscv and plugged in lib_riscv/pvm.
  • In the latest protocol environment the signature of verify_output_proof is changed to return a result instead of an option.
  • In proto_alpha, stubs related to outbox proofs are replaced with the actual implementations in both the protocol PVM definition and the rollup node plugin.
  • Unit tests for outbox proofs are added in lib_riscv.

Manually Testing

make -C src/riscv all

In addition to the unit tests in this MR, Tezt scenarios which exercise the RISC-V PVM outbox are enabled in !21192 (merged).

Tasks for the Author

  • Link all Linear issues related to this MR using magic words (e.g. part of, relates to, closes).
  • Eliminate dead code and other spurious artefacts introduced in your changes.
  • Document new public functions, methods and types.
  • Make sure the documentation for updated functions, methods, and types is correct.
  • Add tests for bugs that have been fixed.
  • Put in reasonable effort to ensure that CI will pass.
    • make -C src/riscv
    • dune test src/lib_riscv
    • dune build src/rust_deps
  • If applicable, trigger the tezt-riscv-slow-sequential test job.
  • Write commit messages to reflect the changes they're about.
  • Self-review your changes to ensure they are high-quality.
  • Complete all of the above before assigning this MR to reviewers.
Edited by Victor Dumitrescu

Merge request reports

Loading