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

Assign a Rust dev from the TxPipe team to become a part-time open-source maintainer of the project for 6 months to keep it up to date with protocol changes in particular those regarding Conway era.

Problem

Screenshot-2023-07-16-at-15.34.28-91a91b.png

Pallas is an expanding collection of modules that re-implements common Ouroboros logic in native Rust. It’s being adopted by multiple projects so it must be kept up to date with protocol changes.

Feasibility
Value for money
Impact / Alignment

txpipe

2 members

Pallas - Open-source maintainer

Please describe your proposed solution.

Context

  • Pallas, a growing library of modules, offers a native Rust implementation of essential Ouroboros/Cardano logic. While it doesn't offer specific applications, Pallas serves as a foundational layer to streamline the development of higher-level use-cases like explorers, wallets, and potentially even a full node in the distant future. Its purpose is to provide a solid base for building advanced functionalities atop the Cardano ecosystem.
  • Txpipe has developed the core of the project and has taken the lead on the effort of providing an implementation of Ouroboros mini-protocols for multipurpose uses.
  • The Pallas library, being utilized by 36 projects, underscores its significance in staying updated with protocol changes. Maintaining its compatibility ensures its relevance and continued support for the broader community.

Scope of the Proposal

  • Recruit a new developer, either from TxPipe or from any interested party in the community, to become a paid open-source maintainer to the Pallas repository. Competency will be evaluated by TxPipe.
  • Ensure participation of this new contributor throughout a period of 6 months; This maintainer 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.
  • Closely monitoring protocol changes and actively implementing the necessary code adjustments within the Pallas library.

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.
  • 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:

  • 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:

  • Enhancing community engagement: New contributors bring with them networks and connections to potential contributors, users, and stakeholders, expanding the project's reach and involvement.
  • Ensuring long-term sustainability: By reducing reliance on a few individuals, the project becomes more resilient and enables effective succession planning for continued progress.
  • Introducing fresh perspectives: New contributors bring diverse approaches, problem-solving methodologies, and insights from different domains, fostering innovation and expanding the project's knowledge base.
  • Challenging the status quo: New contributors help prevent stagnation by questioning established practices, encouraging growth, and stimulating ongoing improvement even after prolonged 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)

  • 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 #8: 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 Pallas development process.

Milestone #2 to #7: 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 Pallas project during the month of analysis.

Milestone #8: 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 Pallas 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:

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 that has already had a big impact on Cardano with 36 projects already using it, and that may be even more relevant in the near future.

Some of this projects are:

  • cncli
  • Aiken
  • Oura
  • Scrolls
  • Dolos
  • Rust-Cardano/Ouroboros-network
  • Cardano slurp
  • PyAiken
  • and more
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