March 2022 — Development Recap for The Blockchain OS

The latest development updates on the components of The Blockchain OS.

Cartesi Foundation
Cartesi

--

As of 2022 Descartes has now been renamed as Cartesi Compute.

We’re all about keeping our community in the loop on the newest developments, from the Cartesi Machine, Cartesi Rollups, and Noether. Let’s take a look at the progress we’re making towards creating a home where a DApp ecosystem can flourish.

As a recap, take a look at the recently released roadmap diagram for an overview of the components that make up The Blockchain OS.

The Cartesi Machine

The Cartesi Machine is Cartesi’s deterministic virtual machine that emulates a RISC-V architecture and can run a full-fledged Linux OS. The Cartesi Machine is Cartesi’s groundbreaking technology that offers a runtime for decentralized applications built with mainstream software.

The Microarchitecture

  • We are making progress with a proof-of-concept for the transition to a microarchitecture-based implementation. We already have an RV64I implementation that will be used to run the microcode, and we are in the process of integrating it into the Cartesi Machine.

Self-Hosted Distributions

  • We have a working proof-of-concept Gentoo distribution that boots in our emulator and in QEMU. We will soon start work on an Alpine Linux distribution as well.

Benchmarks

  • We are creating a variety of benchmarks that will help us assess the speed of the Cartesi Machine in comparison to other RISC-V emulators and the EVM. This will help identify targets for optimization in the Cartesi Machine. It will also inform developers’ expectations when creating applications for the Cartesi Machine.

Improved APIs

  • The Dapp Rollup HTTP API has been greatly simplified. In the previous release, developers wrote a client-server application. Now, they will simply write a client application that asks for inputs from a Rollups HTTP server.
  • The Cartesi Machine now supports developer-generated exceptions when used with Cartesi Rollups. This feature greatly simplifies development by allowing for errors reported by applications running inside the Cartesi Machine to be accessible from outside.

New Features’ Documentation

  • Work continues on the documentation of new features in the Cartesi Machine. Significant improvements to the APIs have been made recently, and these changes will be included in a future version of the documentation.

Cartesi Rollups

Cartesi Rollups is Cartesi’s optimistic rollup layer-2 system relying on the Cartesi Machine to allow developers to create scalable decentralized applications with mainstream software components. It consists of on-chain and off-chain components that allow the blockchain to provide data availability, order input data, bridge tokens between layer-1 and layer-2, and serve as a referee in case of disputes.

Road to Mainnet

  • It is now much easier to experiment with our examples DApps by using Gitpod to open a working development environment for our rollups-examples repository with all required dependencies already installed. Just click on the link included in the repository’s README file;
  • We added a new example that shows you how to easily use a full SQL database in a blockchain decentralized application. Check it out in our rollups-examples repository;
  • Now it is super simple to create a new Cartesi Rollups DApp project from scratch using our template script. No more copy and paste!
  • We did significant refactorings and improvements to enhance the interaction with our Rollups infrastructure:
  • We added a sample frontend console application for the Echo DApp example, making it easier to experiment with;
  • You can now directly use Hardhat tasks to interact with the Cartesi Rollups infrastructure on localhost;
  • There is a new Rollups getNotice task to more easily retrieve notices;
  • The addInput task is now returning the submitted input’s index;
  • Support for submitting inputs and reading notices as UTF-8 strings (before we only supported inputs as hex strings).

DApp Validator Nodes

  • We have deployed the first example to the Polygon Mumbai test network, and are currently designing and developing V2 of deployment strategy.

Rollups Enhancements

  • Regarding support materials, we have updated our documentation content on our new website. There you will find an overview of Cartesi Rollups, its main components, the typical architecture of a Cartesi Rollups DApp, the development life cycle, and more. Check it out:

Support for Computational Oracles

  • Our first version of the computational oracle, Cartesi Compute, served as a proof of concept for the effectiveness of Cartesi’s proposed solution to handle the computational oracle problem. This solution is well documented on our website. As mentioned in our roadmap article, the objective of this feature is to migrate Cartesi’s computational oracle to Cartesi Rollups’ infrastructure and codebase. Apart from design discussions, this work is currently paused while we focus on the Rollups infrastructure.

Arbitration for Rollups

  • The rollups arbitration is under active development. Of note, we wrote the memory manager component of the arbitration, responsible for registering all the memory accesses of the execution of a single RISC-V instruction. Additionally, we wrote tests for the partition component of the arbitration, responsible for doing an interactive binary search between two parties.

Automatic Voucher Execution Incentivized by CTSI

  • We have identified, with the help of our integrators, some roadblocks for querying the proofs of vouchers and notices — this affects the convenience layer supposed to assist developers when executing vouchers and proving notices. We’re working on solving those roadblocks to ease access to those functionalities.
  • Further work will consist of designing and experimenting with solutions for the financially incentivized, automatic, execution of vouchers — which will involve the scheduler solution.

Transaction Sequencer Incentivized by CTSI

  • The development for the on-chain part is currently in progress according to the Diamonds design pattern altogether with unit tests.

Noether

Noether is Cartesi’s side chain for data availability. It is the part of Cartesi’s solution that will enable blockchain applications to use much more data than would be possible with Ethereum or other base layers.

Noether Version 2.0: Upgrade from PoS to PoS 2.0

  • Currently, we are developing the on-chain part of our solution.

The Scheduler

  • No status change.

Explorer

  • We have started an experiment with State Fold (our solution for reading the blockchain’s state) + Dolt solution as an alternative blockchain data backend.
  • The Cartesi Explorer’s theme was updated to match Cartesi’s re-branding to The Blockchain OS.

Contribute to The Blockchain OS

Interested in developing with us? We’re always looking for collaborative team players! Feel free to contact us on Discord, check our current career openings, or send your resume along with an introduction to our HR e-mail: hr@cartesi.io.

About Cartesi

The Blockchain OS is a decentralized layer-2 infrastructure that supports Linux and mainstream software components. For the first time, developers can code scalable smart contracts with rich software tools, libraries, and the services they’re used to, bridging the gap between mainstream software and blockchain.

Cartesi is enabling millions of new startups and their developers to use The Blockchain OS and bring Linux applications on board. With a groundbreaking virtual machine, optimistic rollups, and side-chains, Cartesi paves the way for developers of all kinds, to build the next generation of blockchain apps.

Welcome to The Blockchain OS, home to what’s next.

Follow Cartesi across official channels:

Telegram Announcements | Telegram | Discord (Development Community)| Reddit | Twitter | Facebook| Instagram | Youtube | Github | Website

--

--