completed
Mithril - Open-source contributor
Current Project Status
Complete
Amount
Received
₳143,571
Amount
Requested
₳143,571
Percentage
Received
100.00%
Solution

Assign a Rust dev from outside IOHK team to become a part-time open-source contributor to the Mithril project for 6 months to accelerate the roadmap and introduce an outside perspective.

Problem

Mithril is a promising tool that will enable new use-cases in the Cardano ecosystem. It’s a great example of an open-source project, but it has little involvement from contributors outside of IOHK.

Feasibility
Value for money
Impact / Alignment

txpipe

2 members

Mithril - Open-source contributor

Please describe your proposed solution.

Context

  • The Mithril paper describes, among several things, a way for fast bootstrapping of PoS blockchains using Stake-based Threshold Multisignatures. Use-cases such as light-wallets and chain indexers can be implemented with improved levels of security and self-accountability.
  • IOHK has taken the lead on the effort of providing an implementation of the Mithril paper in the form of an open-source, Rust-based infrastructure component.
  • Participation from diverse stakeholders in the ecosystem throughout the development process is an important characteristic of any open-source project.
  • In particular, a close level of integration of Mithril with other components in the Cardano infrastructure will accelerate adoption.

Scope of the Proposal

  • Reach out the the core Mithril team and ensure their interest on adding a new team member in the form of an open-source contributor, external to the IOHK company. This new member will require an active level of involvement in the whole development process; including roadmap discussions, technical discussions and tasks distribution.
  • Recruit a new developer, either from TxPipe or from any interested party in the community, to become a paid open-source contributor to the Mithril implementation. Competency will be evaluated by TxPipe and advice will be requested from the core Mithril team.
  • Ensure participation of this new contributor throughout a period of 6 months; This contributor will be responsible for tasks such as:
  • Submitting code via pull requests.
  • Reporting bugs or suggesting new features.
  • Improving documentation.
  • Helping with project infrastructure.
  • Assisting in managing issues.

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

A new contributor addresses the challenge by providing the following benefits:

  • New contributors often bring with them their own network of contacts, who may become interested in the project as a result.
  • Each new contributor represents one more person who understands the project and can work on it; improving the long-term sustainability of the project.
  • New contributors force the team to maintain good onboarding documentation and practices, making the process easier for future new contributors.
  • A fresh set of eyes can often spot redundancies, inefficiencies, and bugs that people who've been deeply involved in the project may overlook; improving the overall quality of the project.
  • A new contributor might bring knowledge of libraries, tools, or techniques that are not present in the current set of senior maintainers and contributors.
  • A steady influx of new contributors can signal a vibrant, active, and inclusive community, which can enhance the perceived reputability.

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

Measuring the level of participation of an open-source contributor can be both quantitative and qualitative. Here are specific metrics that we’ll use to measure the impact of the contribution:

  • Commit frequency: This is a basic metric that measures the number of commits a contributor has made to the project. This gives an idea of their overall activity level.
  • Lines of code: The number of lines of code a contributor has added, modified, or deleted.
  • Pull requests: The number of pull requests a contributor has created, as well as how many have been accepted.
  • Issue involvement: how often the contributor has created new issues, commented on existing issues, or helped to resolve issues.
  • Code quality: an assessment of the quality of the contributed code as evaluated by the senior members of the team.
  • Review involvement: Participation in code reviews, both as a reviewer and as a reviewee.
  • Community involvement: level of participation in issues and discussions within the context of the repository but also in different channels across the ecosystem (stackoverflow, twitter, etc).

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

We’ll provide a public report describing the activities of the contributor on a monthly basis. These reports will provide:

  • Contribution Graphs: Tools like GitHub provide contribution graphs that can visually depict a contributor's activity over time. This can provide an easy-to-understand overview of their involvement.
  • Acknowledgement in Release Notes: When new versions of the software are released, the release notes can include acknowledgments of those who contributed to that release. This gives visibility to contributors in a highly visible document.

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

TxPipe is very proud of their past and current contributions to the ecosystem. Just to mention a few:

  • We have developed “Pallas”, a Rust library for Cardano which is used by several high-profile project in the community (such as: cncli and Aiken)
  • Through Catalyst, we have developed and delivered “Oura”, an off-chain data integration tool for Cardano used by many projects in the community (such as: Pool.io and dcSpark’s Carp, etc).
  • Through Catalyst, we have developed “Dolos”, a minimalistic version of the Cardano node which is being slowly rolled out to the community as a beta version.
  • We have developed “Demeter”, a cloud hosting platform for Cardano infrastructure with several high-profile clients (such as: JPG.store, SummonPlatform and TeddySwap).

The above are examples of our accountability because:

  • It shows our commitment to evolving the open source community and the Cardano ecosystem.
  • It shows the technical expertise required to develop and maintain Cardano infrastructure.
  • It shows our commitment to the Catalyst program and its required procedures.

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

Introducing a new contributor to a project aims to fulfill the following goals:

  • Increase the engagement of the wider community, since new contributors might have networks and connections with other potential contributors, users, or stakeholders.
  • Ensure the long-term sustainability of the project. It reduces the project's dependence on a few key individuals and helps in succession planning.
  • Introduce fresh approaches to existing problems and methodologies. They can also introduce concepts or solutions from different domains that current members might not be aware of.
  • Challenge the existing ways of doing things to help; preventing the natural tendency of any project to become stagnant after long development periods.

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: Contributor selection and onboarding (2 weeks)

  • Confirm approach and collaboration with Mithril’s core development team
  • Reach out to potential candidates and evaluate their competency
  • Select candidate and perform the onboarding process

Milestone #2 to #7: Monthly health checkpoint (1 month each milestone)

  • Survey health form contributor’s perspective
  • Survey health form core team perspective
  • Prepare and release contribution report

Milestone #7: Contribution wrap-up (2 weeks)

  • Survey overall success from contributor’s perspective
  • Survey overall success from core team perspective
  • Prepare and release final contribution report
  • Discuss continuation alternatives and contributor rotation

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

Milestone #1: Contributor selection and onboarding

  • Output: a report describing the process and rationale used for the selection of the candidate.
  • Outcome: a valid candidate has been selected and on-boarded onto the ongoing Mithril development process.

Milestone #2 to #6: Monthly health checkpoint

  • Output: a public report describing the activities and contributions from the new contributor.
  • Outcome: a net-positive contribution on the overall development quality and performance of the Mithril implementation project during the month of analysis.

Milestone #7: Contribution wrap-up

  • Output: a public report describing the activities and contributions from the new developer throughout the total duration of the project.
  • Outcome: a net-positive contribution on the overall development quality and performance of the Mithril implementation project throughout the complete contribution period.

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

FTE = full-time equivalent

All values expressed in ADA (₳)

Breakdown by resource type:

  • Rust developer: 0.5 FTE x 6 months = ₳ 128,571
  • Project manager: 1/4 FTE x 7 months = ₳ 15,000

Breakdown by milestone

  • Milestone #1: ₳ 2,145
  • Milestone #2: ₳ 23,571
  • Milestone #3: ₳ 23,571
  • Milestone #4: ₳ 23,571
  • Milestone #5: ₳ 23,571
  • Milestone #6: ₳ 23,571
  • Milestone #7: ₳ 23,571

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

This project will be coordinated by the TxPipe team. In particular, the following people will be involved in the development:

  • Santiago Carmuega (TxPipe): will be in charge of candidate evaluation and contact point with Mithril core team.
  • Federico Weill (TxPipe): will be responsible for project management.

As explained in the solution section, a new hire will take care of the role of Rust developer for the actual contributions.

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

The bulk of resources (everything except project management) will be directly assigned to the development of a tool with the potential of having a huge impact on the Cardano ecosystem.

More importantly, the hiring of a new outside contributor will improve the overall reach, adoption and diversity of an important open-source project in the ecosystem.

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