Automated Cardano Testing Pipeline
current project status
Current Project Status
unfunded
Total
amount
Received
$0
Total
amount
Requested
$10400
Total
Percentage
Received
0%
$ Received out of $10400
Solution
We propose to provide a CI/CD pipeline using Gitlab runners and the Cardano-Tools Python library to develop a suite of tests capable of continuously testing the Cardano node's core functionality.
Problem
When a new version of the Cardano node is released, it is difficult for community members to run basic functional tests on the node in an automated fashion (e.g., transactions, stake pool operation).
Impact alignment
Feasibility
Value for money

Team

  • download
  • download

[IMPACT] Please describe your proposed solution.

We propose to provide a CI/CD pipeline using Gitlab runners and the Cardano-Tools Python library to develop and deploy a suite of tests that can be run on new releases of the Cardano node. The CI/CD capabilities of Gitlab enable automated deployment of test code to a server that has been set up with a synced Cardano node running on the testnet. Automated tests will exercise and evaluate the following core functions of the Cardano node:

  • Create a set of wallet keys and send/receive funds to/from the resulting address.

  • Mint and burn a native token, i.e., an NFT.

  • Create, register, and retire a stake pool.

  • Delegate a wallet to a stake pool.

    [IMPACT] Please describe how your proposed solution will address the Challenge that you have submitted it in.

This project positively impacts developer productivity by providing deployment and testing automation. Further, the unit tests developed in the library also serve as documentation and code samples that serve as working examples of how to execute common tasks that Cardano developers need to do in the course of their work.

[IMPACT] What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

The automated testing of certain capabilities requires key prerequisites:

  • Fund transfer and token minting require a wallet containing testnet funds.
  • The ability to register a stake pool also requires testnet funds.
  • A known set of valid private keys for a testnet wallet.

These items require access to a testnet fund "faucet", which is currently publicly accessible and hosted by the IOG team. These and other such issues may make the initial setup of the test node more tedious, but the automated tests we have proposed have a high likelihood of success.

[FEASIBILITY] Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

Q4 2022: Setup testnet server and register as a CI/CD runner. Develop and deploy wallet, transaction, and native token automated tests.

Q1 2023: Develop and deploy stake pool setup, tear down, and delegation automated tests.

[FEASIBILITY] Please provide a detailed budget breakdown.

The hourly rate may vary widely across regions and professions; in this case, we believe that we have established an extremely conservative estimate of $40/hr.

  • Cardano testnet CI/CD server setup: 10 hrs x 2 devs
  • Wallet, transaction, and native token test development and deployment: 60 hrs x 2 devs
  • Stake pool setup, tear down, and delegation test development and deployment: 60 hrs x 2 devs

Total: 130 hours x $40/hr x 2 devs = $10,400

[FEASIBILITY] Please provide details of the people who will work on the project.

Team member 1: Dylan Crocker Ph.D.

Ph.D. in Electrical Engineering with a minor in Computer Science from Georgia Tech. Engineering professional with over 10 years of experience. Cardano stake pool operator since December 2019.

Team member 2: Willie Marchetto

Received a Bachelor of Science degree in Computer Engineering from the Missouri University of Science and Technology and a Master of Science degree in Astronautical Engineering (with a focus on spacecraft electronics and software) from the University of Southern California. Willie has 10 years of experience in the research and development of high-consequence, high-reliability space systems and has spent a great deal of time administrating Linux servers and developing Python and embedded code. Cardano stake pool operator since December 2019.

Both team members have previously had a project funded through Catalyst with successful completion.

[FEASIBILITY] If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

Yes, if the community believes our work is having a positive impact, we intend to submit proposals for future work.

[AUDITABILITY] Please describe what you will measure to track your project's progress, and how will you measure these?

The project progress will be measured by a goal of 5 substantial git commits per month. This isn't always the best method of measuring progress, so we additionally measure implemented unit tests with the goal of one new unit test implemented and passing each month.

[AUDITABILITY] What does success for this project look like?

This project will be considered successful when the following capabilities are exercised by Cardano-Tools unit tests deployed to a server running a synced Cardano node.

  • Create a set of wallet keys and send/receive funds to/from the resulting address.

  • Mint and burn a native token, i.e., an NFT.

  • Create, register, and retire a stake pool.

  • Delegate a wallet to a stake pool.

    [AUDITABILITY] Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

This project builds off of work conducted under this proposal https://cardano.ideascale.com/c/idea/400419

Community Reviews (1)

Comments

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