Last updated 5 days ago
Cardano smart-contract language ecosystem develops rapidly and offers many languages without a single and comprehensive performance comparison.
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.
This is the total amount allocated to MLabs - Cardano Onchain Languages Benchmark. 4 out of 5 milestones are completed.
1/5
Specification
Cost: ₳ 54,286
Delivery: Month 2 - Dec 2023
2/5
Reference implementation
Cost: ₳ 54,286
Delivery: Month 3 - Jan 2024
3/5
Test Framework
Cost: ₳ 54,286
Delivery: Month 4 - Feb 2024
4/5
Alternative Implementations
Cost: ₳ 67,856
Delivery: Month 6 - Apr 2024
5/5
Performance report
Cost: ₳ 40,716
Delivery: Month 7 - May 2024
Tomasz Maciosowski
No dependencies.
Project will be fully open source.
Problem
The 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.
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.
Cardano developers will have a reliable resource to compare the performance of different available tools and frameworks to develop Cardano dApps.
The repository with all implementations, test suite, and benchmarks will be Free and Open Source.
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.
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.
Milestone 1
Milestone 2
Milestone 3
Milestone 4
Milestone 5
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.
Planning and Design: 60 hours
Reference (plutarch) validator implementation: 80
Test suite: 160
Implementation in different languages: 160
Performance report: 40
Change budget: 100
Subtotal: 600 hours @95/hour = $57,000 USD
Total (@ rate $0.21 USD / ADA) = 271430 ADA
**In the interest of full transparency, please note we have applied a conservative USD/ADA exchange rate in pricing this proposal. This is to ensure our operations remain stable regardless of market conditions. Although we firmly believe the future of Cardano is bright, we recognize the price of ADA and all cryptocurrencies is inherently volatile. Our financial obligations are denominated in fiat. Most importantly, this includes the salary of our engineers whose hard work makes projects like this possible.
In the unlikely scenario of severe negative price movement beyond our forecasted rate, it is possible that MLabs may need to temporarily suspend work on this proposal until the market recovers. Rest assured, this decision would be made solely to protect our business's long-term viability and never taken lightly.
We appreciate your understanding and support, and we are excited to see what we can achieve together.
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.
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
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:
Through our work with early-stage projects, we have one of the largest groups of Haskell/Plutus developers in the community.
Website: https://mlabs.city/
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: https://github.com/t4ccer