funded
MLabs - Cardano Onchain Languages Benchmark
Current Project Status
In Progress
Amount
Received
₳230,714
Amount
Requested
₳271,430
Percentage
Received
85.00%
Solution

Our solution proposes implementing the same onchain validator in multiple languages, developing a language-agnostic test suite to test the equivalence of validators, and measuring performance.

Problem

Cardano smart-contract language ecosystem develops rapidly and offers many languages, without a single and comprehensive performance comparison.

Feasibility
Value for money
Impact / Alignment

MLabs

1 member

MLabs - Cardano Onchain Languages Benchmark

Please describe your proposed solution.

Problem

Cardano ecosystem develops rapidly and offers many languages to write smart contracts. Currently, there is no clear non-opinionated comparison of these languages that will show how to achieve equivalent validators and compare the performance characteristics.

Solution

We will develop a comprehensive comparison test suite and benchmark for the onchain programming languages available in the Cardano ecosystem. It will enable developers to understand and evaluate the performance characteristics of different languages when choosing a language to write their DApps.

How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?

Intended Challenge – F10: Developer Ecosystem - The Evolution

Challenge Question – How do we equip and support developers with tools and working infrastructure? How do we make Cardano their first choice when it comes to building dApps, innovating and collaborating?

What does this proposal entail?

Our proposed solution involves the development of a specification for an onchain validator that can be implemented in multiple programming languages within the Cardano ecosystem, such as Plutarch, PlutusTx, Aiken, Opshin, and others. This specification will serve as a standardized guideline for writing validators, ensuring consistency across different language implementations.

To ensure the accuracy and equivalence of these language implementations, we will create a language-agnostic testing framework. This framework will enable developers to test their implementations against the specification and verify that the behavior and functionality of the validators are consistent across different languages. By providing a standardized testing environment, we can identify any discrepancies or inconsistencies in the implementations, facilitating the improvement and refinement of the languages.

In addition to testing for equivalence, our framework will also measure the performance characteristics of the different implementations. This includes assessing factors such as script size and execution units. This information will be invaluable for optimizing the performance of smart contracts and making informed decisions regarding language selection based on specific performance requirements.

How do you intend to measure the success of your project?

Cardano developers will have a reliable resource to compare the performance of different available tools and frameworks to develop Cardano dApps.

Please describe your plans to share the outputs and results of your project?

The repository with all implementations, test suite, and benchmarks will be Free and Open Source.

What is your capability to deliver your project with high levels of trust and accountability?

MLabs has proven itself as a company employing dozens of Haskell and PureScript software developers and delivering a number of Catalyst-funded projects in the past.

What are the main goals for the project and how will you validate if your approach is feasible?

The main goal is to create a comprehensive report and comparison of Cardano smart contract languages to make the choice of development tools easier. The feasibility of our approach to achieve the goal will be evaluated by project managers and technical leadership of the project, based on time and budget constraints.

Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

Milestone 1

  • Write a specification of the validator

Milestone 2

  • Implement a reference validator in Plutarch

Milestone 3

  • Develop onchain language agnostic test suite to test the reference implementation and reuse it for other implementations

Milestone 4

  • Implement equivalent validators in PlutusTx, Aiken, Opshin, etc.

Milestone 5

  • Create automated pipelines to generate performance reports as used languages rapidly evolve. Compile a performance report document

Please describe the deliverables, outputs and intended outcomes of each milestone.

We will deliver the specification of the validator to be later implemented in all benchmarked languages, all implementations will be open source and available on GitHub. Performance report and the methodology will be made public.

Please provide a detailed budget breakdown of the proposed work and resources.

TBD

Who is in the project team and what are their roles?

MLabs

MLabs has quickly become one of the premier development firms in the Cardano Ecosystem. We are an IOG Plutus Partner and work regularly with IOG to develop the Cardano blockchain and ecosystem. Our team is composed of talented developers who have helped build community projects such as:

  • Liqwid
  • SundaeSwap
  • Minswap
  • Optim
  • Many others

Through our work with early-stage projects, we have one of the largest groups of Haskell/Plutus developers in the community.

Website: <u>https://mlabs.city/</u>

Core Team

Tomasz Maciosowski

Tomasz, a Haskell/Plutus developer, has gained experience through involvement in projects such as Clarity and Charli3. Additionally, he has made contributions to different infrastructure projects like CTL

GitHub: <u>https://github.com/t4ccer</u>

How does the cost of the project represent value for money for the Cardano ecosystem?

The key to success lies in making informed decisions at the early stages of a project. Our goal is to minimize risks for Cardano builders by offering them a comprehensive understanding of how these foundational technologies perform in any Cardano dApp project

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00