(2023Q3-Q4) Michelson-in-Rust
This is a meta-milestone for the Michelson-in-Rust (MIR) project. It gives a summary of its sub-milestones.
Context
Smart rollups have been introduced as a second-layer mechanism to increase throughput and enable the deployment of more complex applications on Tezos.
In order to ease adoption, Wasm was chosen as the language of smart rollups kernels.
However, actual smart contract developers on Tezos can only push a Michelson program on chain, so their applications can not run on smart rollups and benefit from the features of this new architecture.
The goal of the MIR project is to provide an implementation of Michelson (type-checker and interpreter) as a Rust library. Indeed, Rust has a Wasm back-end; thus, app developers will be able to deploy their existing or future Michelson programs directly on a smart rollup by using MIR.
Sub-milestones
The project is divided into three ordered phases: prototyping, having a fully featured implementation, and reinforcing quality and validation.
Note that finishing all phases may span over several quarters.
-
Prototype phase
-
%(2023Q3) MIR: prototype -
Lexer/Parser. -
AST. -
Type-checker. -
Interpreter. -
Gas consumption. -
Roll-up deployment: in review.
-
-
-
Fully featured implementation phase
-
%(2023Q3) MIR: check TZT test suite exhaustiveness - Result: missing tests.
-
%(2023Q4) MIR: vote contract. -
Architecture -
TZT for MIR. -
TZT for Octez: %Support for Michelson unit tests in TZT format -
Annotations (should simply be ignored) -
mutez
-
string
-
map
-
ADD
-
PUSH
-
IF
-
DUP
-
DIP
-
AMOUNT
-
COMPARE
-
FAIL
-
{}
-
CAR
-
CDR
-
GET
-
ASSERT_SOME
-
SOME
-
UPDATE
-
NIL
-
PAIR
-
Deliverable: roll-up deployment
-
-
%(2023Q4) MIR: multisig contract. -
TZT tests. -
Michelson serialization. -
Macro support. -
Multisig's instructions/types/values. -
Deliverable: roll-up deployment
-
-
%(2023Q4) MIR: support remaining instructions.
-
-
Reinforcement phase
-
(2023Q3) MIR: reinforce quality, tests, and gas values.
-