not approved
Create a template for Test Driven Development in Helios
Current Project Status
Unfunded
Amount
Received
₳0
Amount
Requested
₳48,000
Percentage
Received
0.00%
Solution

provide a code repository that demonstrates test-driven approach to dApp development in Helios.

Problem

Senior developers reaching Cardano from other industries miss simple convenient tooling to build on Cardano

Impact Alignment
Feasibility
Value for money

Team

1 member

Create a template for Test Driven Development in Helios

Please describe your proposed solution.

1) Problem description

Currently if a developer wishes to build on Cardano they can not do this unless they have a firm grasp of eUTXO model. However to understand the model experimentation is needed. Current solutions are not aimed at providing simple means for experimentation, but provide complex tools for measuring and optimizing smart contracts.

2) Current solutions

Currently the most accessible tool is plutus-simple-model by Mlabs, and there are quite a few others that exist. The problem with existing solutions is that they are aimed at internal use by the consulting companies and make development unnecessarily complex for those who explore Cardano on their free time.

Currently the tooling that exists is exclusively in Haskell (like plutus-simple-model, plutip, Tweag tooling and others). However even in the ecosystem the majority of developers know JS/TS, while much fewer know Haskell.

3) Proosed solution and benefits

We will develop potential-robot, a program that demonstrates how EmulatorTrace works in Helios. An Emulator Trace is a sequence of actions that follows the logic of how a smart contract works and executes transactions to demonstrate that the component works as intended.

The primary audience is a Web developer who seeks to build a Proof of Concept component for their product. The user would use the repository by running it and following along Plutus Pioneer documentation to build a mental model of eUTXO. Then they would modify the validator logic, add and modify the transactions in the trace to arrive to the component they have in mind.

Using Helios will reduce the complexity of the system that the programmer needs to study to understand, and it cuts significantly on the build times when comparing to existing solutions.

We approach the problem in this way because the State of the Developer Ecosystem survey states that SDKs and developer tools are the two most wanted improvements by the developers in the ecosystem.

Therefore a solution in TypeScript will be helpful to the most developers, especially new developers who explore Cardano for building their projects.

4) Stakeholders

The proposal is aimed at experienced Web developers from outside blockchain space who explore Cardano's potential for building solutions in their industries.

5) Impact and KPI

The impact and KPI measures are the standard GitHub measures: number of stars, number of forks, mentions of the program in StackExchange and in Discord forums.

Please define the positive impact your project will have on the wider Cardano community.

The tooling we provide reduces programmer time overhead needed to successfully test a dApp prototype, proof of concept or a smart contract.

The success of the project will facilitate creation of new concepts and products on Cardano.

One measure of impact is the number of potential users of the tool. Providing a solution in TypeScript we address the biggest programmer community that exists without compromising the security.

Second measure of impact is savings in developer time. This tool gives almost nothing to someone who works at MLabs or IOG, but it will save two to four weeks to a Senior Developer who does not know Haskell, and from six to twelve weeks to a developer who is the target audience of the Plutus Pioneer Program.

Third measure of impact is complexity. To compare, plutus-starter uses three languages: Haskell/Plutus, nix and shell. This project uses one.

The fourth measure of impact is reduction of build times from 45-90 mins for plutus-starter, plutip or plutus-simple-model to under a minute for potential-robot.

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

The proposal was discussed extensively with experts from MLabs, IOG and several Senior developers in the ecosystem.

The development of the project takes place in collaboration with the experts Developer Experience working group and Certification working group.

A prototype exists that needs development.

Alex Seregin is an open source enthusiast with over 15 years of experience leading impact projects.

What are the key milestones you need to achieve in order to complete your project successfully?

The milestone covers:

  • the research needed to understand the problem
  • networking to get access to the skills and knowledge necessary to plan the proposal.
  • architecting
  • planning

To verify that the milestone was complete a requirements document is provided.

>The second milestone covers

  • developing the codebase
  • integrating frameworks
  • testing
  • documenting the work

The milestone output is the GitHub repository which is linked to this proposal.

To verify that milestone is complete the tests in GitHub CI must pass and the tests must correspond to the requirements document.

There should be tests covering the initial state of the blockchain emulator, tests that show that the transactions had had the projected effect on the emulated environment.

>The final milestone covers

  • writing the proposal
  • finalizing the outputs.

To validate the milestone code audit report from the Certification WG must be provided.

Please provide a cost breakdown of the proposed work and resources.

1 x developer (24 weeks):

  • Study the problem
  • Create the architecture
  • Research and choose the components
  • Integrate the development components
  • On/Off-chain code integration and testing
  • Discuss with the Developer Experience working group
  • Discuss with the Certification working group

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

The proposed project's cost represents value for money for the Cardano ecosystem by addressing critical security and usability concerns related to dApp development.

By investing in the development of a this project Cardano can provide good balance between accessibility and security to the developers.

Consider that we are making secure dApp development accessible to the users of JavaScripe, one of the largest dev communities that exists:

Image file

This fosters developer trust and confidence in Cardano.

Additionally, this improves Developer Experience on Cardano.

In essence, the project's cost translates into enhanced security, usability, and overall ecosystem stability, making it a sound investment for Cardano.

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