MaksymilianDemitraszek / cleopatra_cairo

Cleopatra Cairo is a Rust implementation of the Cairo VM. Cairo is a programming language for writing provable programs, where one party can prove to another that a certain computation was executed correctly. Cairo and similar proof systems can be used to provide scalability to blockchains.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cleopatra Cairo VM

Cleaopatra is a Rust implementation of the Cairo VM. The VM is fully functional but we don't support hints yet. We are working on it.

Code Coverage

Track of the project's code coverage: Codecov.

Cleopatra benchmarks:

Running a Cairo program that gets the 100th Fibonacci number we got the following benchmarks:

Cairo

Flow Diagram

We've created a diagram that illustrates function calls and where each of them are defined for a simple cairo program execution.

diagram

This diagram was produced using this mermaid code.

Original Cairo VM Internals

We wrote a document explaining how the Cairo VM works. It can be found here.

Compilers and interpreters

These is a list of recommended books to learn how to implement a compiler or an interpreter.

Computational integrity and Zero Knowledge Proofs

Basics

ZK SNARKs

ZK STARKs

Introduction:

Vitalik Buterin's blog series on zk-STARKs:

Alan Szepieniec's STARK tutorial:

StarkWare's STARK Math blog series:

About

Cleopatra Cairo is a Rust implementation of the Cairo VM. Cairo is a programming language for writing provable programs, where one party can prove to another that a certain computation was executed correctly. Cairo and similar proof systems can be used to provide scalability to blockchains.

License:MIT License


Languages

Language:Rust 99.1%Language:Shell 0.4%Language:Cairo 0.2%Language:Makefile 0.2%