Skip to main content

25 docs tagged with "sdk"

View All Tags

Architecture

What follows is a summary of the architecture and the components that are involved in running a Cartesi Compute Application, meaning some dApp that makes use of our SDK. It is convenient to start with the description of the typical ingredients involved in a decentralized application. Namely, the blockchain node and the client software.

Drives

This section describes in detail the Drive[] _inputDrives parameter of the instantiate call.

Execution timeline

At this point, an overview has been given of what constitutes a Cartesi computation, who are the parties involved, and what the software components of Cartesi Compute are. It is important to understand better what events happen during the execution of a Cartesi Machine.

How it works

Cartesi Compute SDK allows Cartesi dApps to specify and request verifiable computations to Cartesi Machines. Additionally, the SDK provides tools to facilitate and reduce the cost of inputting data into Cartesi Machines.

Instantiate

This section describes the main ingredient of the on-chain Cartesi Compute infrastructure.

Introduction

- give step by step instructions about how to build a dApp using the Cartesi Compute SDK

Logger drives

A relevant limitation of the Cartesi Machines as they have been described until now is the size of their input drives.

Machines off-chain

Although an extensive documentation of Cartesi Machines can be found here, one may choose to skip this reading and jump right away to their usage inside the blockchain through Cartesi Compute. For that, it is enough to regard a Cartesi Machine as a black box that executes computations.

Machines on-chain

Having discussed the concept of Cartesi Machines off-chain, capable of booting a Linux operating system and loading heavy-weight libraries, one naturally wonders how this will ever be stored or executed on the limited environment of a blockchain. The simple answer is that it won’t be.

On-chain API

Having informally discussed how Cartesi Compute represents Cartesi Machines on-chain, one can now describe in more details the API for requesting and retrieving computations in Cartesi Compute.

Overview

Cartesi Compute allows you to implement a function in which you receive a set of inputs and it provides an output. So you can think of a Compute dApp as a computational oracle that tells you the result of a computation.

Platform services

Platform Services is a new product developed and maintained by the Cartesi team that hosts Cartesi Node infrastructure for dApps. The service is elastic, making resources available to dApps upon demand. Developers deploy their Cartesi dApps on Platform Services and it automatically allocates resources according to user activity.

Provider drives

After going through the last section, the reader is already able to specify drives if the data was available to the caller at the time of instantiation.

Putting Things Together

To better understand how Cartesi Compute can be used, imagine the following simple Cartesi dApp with one claimer and one challenger. The dApp can be a skill-based game where players place their bets and challenge each other for the highest score over the blockchain. The winner takes the pot.

Supported networks

Broadly speaking, the Cartesi L2 platform architecture should be perceived as blockchain-agnostic, given that in principle any network could use Cartesi Machines to move complex computations off-chain without compromising on decentralization.

The off-chain API

After the call for instantiate, the blockchain may already have all information that is necessary to execute the machine. But in many cases it also needs to get input from other users. In a game for example, the user may need to insert their decisions on input drives for later processing.

Topologies

When users interact with their blockchain dApps, they are free to manage and run their own blockchain nodes if so they wish. In a common scenario of the usage of the Ethereum network, dApps are accessed via browser and blockchain transaction requests are carried out by Metamask. The user signs the transaction which is typically sent to a remotely hosted node, such as Infura.

Wallets

Cartesi is a second layer solution.

© 2024 Cartesi Foundation Ltd. All rights reserved.

The Cartesi Project is commissioned by the Cartesi Foundation.

We use cookies to ensure that we give you the best experience on our website. By using the website, you agree to the use of cookies.