Skip to content

Execution

gg edited this page Jul 1, 2023 · 4 revisions

MDC execution modes

The Mina Developer Container (MDC) supports three different execution modes, each catering to different developer preferences and requirements. Let's explore each mode and provide examples of how developers can benefit from them:

Local development, Local execution

This mode is designed for advanced users who prefer to have full control over their development environment and have sufficient resources available on their local machines. Developers can deploy a local instance of the MDC, running Docker, on their computers. This mode also utilizes the VSCode SSH remote desktop feature, but the resources utilized for executing tasks are the ones available locally.

Example

Michael is an experienced developer who wants to have complete control over his development environment. He sets up a local MDC instance using Docker on his powerful computer. By leveraging the VSCode SSH remote desktop functionality, Michael connects to the local MDC instance and enjoys the convenience of a familiar coding environment. Since his computer has ample resources, all the compilation and execution tasks are performed locally, ensuring maximum performance and responsiveness.

Local-Local Overview

Local development, Remote execution

This mode is suitable for developers who prefer to work locally on their machines using their preferred IDE, such as VSCode, while leveraging the power of remote resources for executing resource-intensive tasks. Developers deploy the MDC on a cloud VM and connect to it using the VSCode SSH remote desktop feature. The MDC on the remote VM provides the necessary tools for development, while resource-intensive operations utilize the remote resources.

Example

John wants the flexibility of working on his local machine but needs the computational power of a cloud-based environment for compiling and creating zk-proofs. He deploys the MDC on a cloud VM, sets up the SSH remote connection in VSCode, and connects to the MDC instance running on the cloud VM. John can use his familiar VSCode environment for coding, while the resource-intensive operations are offloaded to the powerful cloud VM, providing a smooth and efficient development experience.

Local-Remote Overview

Remote development, Remote execution

In this mode, developers can access the MDC by signing in with their account and deploying it on a cloud-based virtual machine (VM). The MDC interface presented to the user is an instance of Visual Studio Code (VSCode) pre-configured with all the necessary software and tools for deploying tutorials or custom code. The remote execution means that when compiling and creating proofs, the MDC utilizes the resources available on the remote cloud VM.

For convenience, you can an already deployed Gitpod instance to start coding right away. Open in Gitpod

An extended document that explains how to run MDC, is explaned here

Example

Sarah is a developer who prefers a cloud-based development environment. She signs in to the Gitpod platform, selects the remote development configuration, and presses play. A cloud VM is provisioned for her, and she can immediately start coding and running Mina applications using the integrated VSCode interface. The heavy lifting, such as compiling and generating proofs, is performed on the remote cloud VM, ensuring efficient resource utilization.

Remote-Remote Overview

In summary, the Mina Developer Container offers different execution modes to accommodate various developer preferences and resource requirements. Whether developers prefer a cloud-based, remote execution environment or want the flexibility of local development with remote execution capabilities, the MDC can adapt to their needs, providing a seamless and efficient development experience.