We’ve been hard at work at Cartesi, expanding the team, developing the first Cartesi-based DApp, and advancing the development of our platform.

However, we’re most excited to announce a tremendous milestone: we reorganized and open-sourced our repositories! We’ve always been dedicated towards the principles of open-source software. By open-sourcing our repos, we invite contributors to join our endeavor and take our concepts to new areas. We’re a link in this ecosystem and we hope that not only will Cartesi be impactful, but that others will build upon our ideas and develop alongside us. Without further ado:

Our Repo Open-Source Index

Scroll to the bottom for a brief description of each repo.

Welcome to the Team!

We’re excited to welcome Danilo Tuler to the Cartesi team. Danilo is a previous CTO and tech company founder with a successful exit. He has more than a decade of experience defining and executing rigorous software development processes involving large teams. We are thrilled to announce he is now our Head of Engineering, already bringing a wealth of insights and experiences that will prove invaluable as we move into our later stages of development.

Building a Game with Cartesi

The first DApp outside of our testnet demo is set to be released on Cartesi in the coming months.

The DApp will be an adaptation of a tower defense game originally ported from Android. Everyone will be able to play the game and gain an inside look at what makes the Cartesi platform so valuable for DApp developers. We will also be running a decentralized tower defense game tournament, showcasing Cartesi’s efficient handling of advanced computations and the ease of developing complex game logic using a full Linux operating system. Keep an eye out for this release!

Development: Open Source Announcement!

We have focused heavily on open-sourcing Cartesi and releasing an organized overview of our repositories.

Before getting started with Cartesi we recommend the reading of the article “On Linux and Blockchains.” For a deeper look, please also refer to the Cartesi Core Techpaper.

If you have any other questions related to development or using Cartesi, please join our Discord channel. For any other questions, check out our Telegram Community!

Here’s a brief description of each of our indexes:

Arbitration DLib

Arbitration DLib is the combination of the on-chain and off-chain protocols that work together to resolve any disputes that might occur during the execution of a Cartesi DApp. The behavior of the off-chain and on-chain code are very similar. The on-chain code is written in Solidity and the off-chain in Rust.

Blockchain Node

The Cartesi Blockchain Node is a convenient development/testing Ganache Ethereum node instance that runs inside a docker container and has all the Cartesi blockchain contracts deployed.

Demo

The Cartesi Demo showcases a simple DApp that uses all the Cartesi Modules. It consists of a very simple application that triggers a Verification Game (VG) between two parties (Alice and Bob).

Alice disputes Bob’s results and runs the DApp correctly. Bob, on the other hand, simulates a party that is not behaving correctly and executes the DApp in a defective environment in which the clock of the Cartesi Machine saturates at a determined cycle.

This repository contains everything that is needed to generate docker images for all the Cartesi Modules and two high level scripts to build everything from scratch and run the demo.

Dispatcher

This component contains the main loop of the application, observing the state of the blockchain and acting on the behalf of the DApp. This component is central in the sense that it communicates to various others in the system.

GRPC Interfaces

The Cartesi GRPC Interfaces repository contains all GRPC and Protobuf definitions used in the GRPC interfaces of the Cartesi Project modules.

Image Kernel

The Cartesi Image Kernel is the repository that provides the Docker configuration files to build the kernel.bin testing Linux kernel. This is used to run a Linux environment on the Cartesi Machine Emulator reference implementation.

Image RootFS

The Cartesi Image RootFS is the repository that provides the Docker configuration files to build the rootfs.ext2 testing filesystem. This is used to run a Linux environment on the Cartesi Machine Emulator reference implementation.

Image Toolchain

The Cartesi Image Toolchain is the repository that provides the Docker configuration files to build an image containing the RISC-V cross-compiling toolchain. This image is used to compile software for the Cartesi Machine Emulator reference implementation.

Machine Emulator

The Cartesi Machine Emulator is the reference off-chain implementation of the Cartesi Machine Specification. It’s written in C/C++ with POSIX dependencies restricted to the terminal, process, and memory-mapping facilities. It is distributed as a library and scriptable in the Lua programming language or via GRPC.

Machine Emulator SDK

The Cartesi Machine Emulator SDK repository provides a structured way to build the off-chain emulator binaries, including the kernel, rom, rootfs, tests, and the emulator itself.

Machine Tests

The Cartesi Machine Tests is a repository containing RISC-V testing code.

Machine Emulator ROM

The Cartesi Machine Emulator ROM is the reference software that boots a guest operating system on the emulator.

The Cartesi Machine Manager

The machine-manager repository contains the server responsible for managing different sessions of Cartesi Machines. It has a submodule dependency, the machine-emulator repository, that contains the emulator GRPC server.

The Cartesi RISC-V Solidity Emulator

The Cartesi RISC-V Solidity Emulator is the on-chain host implementation of the Cartesi Machine Specification. The libraries and contracts are written in Solidity, the migration script is written in Javascript (with the help of Truffle), and the testing scripts are written in Python.

Disclaimer! As we are still in the early stages of development of Cartesi there is a long way to go but we are extremely excited about this milestone! As a disclaimer, this release candidate is not an SDK just yet. Development with Cartesi at this point is for the brave only, however it will become easier and easier with our next releases and user documentation.

Get in Touch

We are always looking for strategic partners, developers, and established DApps to start using and building with Cartesi.

Interested in joining us or learning more? Contact us at info@cartesi.io or in any of the channels below.

Stay tuned for more!