Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFP Application: halo2 Community Manager #1319

Closed
therealyingtong opened this issue Jan 5, 2023 · 1 comment
Closed

RFP Application: halo2 Community Manager #1319

therealyingtong opened this issue Jan 5, 2023 · 1 comment
Assignees
Labels

Comments

@therealyingtong
Copy link

therealyingtong commented Jan 5, 2023

RFP Proposal: halo2 Community Manager

Name of Project: halo2 Community Manager

Link to RFP: https://github.com/filecoin-project/devgrants/blob/master/rfps/zcash-and-filecoin.md#zcash-and-filecoin-rfp

RFP Category: community

Proposer: therealyingtong

Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?: Yes

Project Description

The halo2 library, authored by the ECC team, has been widely adopted by projects such as zkEVM community edition, zKonduit's ezkl, Axiom, and Filecoin. External teams have built many useful features, ranging from low-level proof system changes, to optimisations and API extensions, e.g.:

Many of these features are not directly used in the zcash project, but are widely useful in a variety of applications: as such, they are often submitted for inclusion upstream. However, reviewing pull requests and maintaining community reviewer/maintainer groups is a significant overhead in addition to the ECC team's other responsibilities. Maintaining an active ecosystem around halo2 would benefit the zcash project as:

  • more eyes on the code increases the probability of surfacing edge cases, bugs, and security issues;
  • industry-wide standardisation and benchmarking efforts will be more likely to include the halo2 library;
  • a more modular and feature-rich halo2 library could make it easier to support future upgrades and extensions of the zcash protocol.

The halo2 library underpins Protocol Labs' and ECC's joint effort to reduce the proof data stored on the Filecoin network. Modifications and features specific to their use-case, such as SHA256 gadget cleanups, Merkle tree gadget generalisations, and GPU optimisations will benefit from the same review and maintenance workflows. The Filecoin project would also benefit from features and optimisations contributed by the rest of the halo2 ecosystem.

A halo2 community manager would contribute reviews, organise processes for external review and maintenance, and provide support to external teams exploring new features. They would liaise with the ECC core maintainers as well as maintainers of long-lived forks, such as halo2-ce.

Development Roadmap

  1. Document the review policy for the halo2 repository (adapted from zcash/halo2#708):

Currently, the halo2 repository follows ECC's review policy for code that ends up in zcashd (as zcash/halo2 is a dependency of it), which is designed around "levels of bug impact". These are centred around reviews from ECC engineers and can require up to three reviews (for PRs that alter consensus rules).

A compatible review policy for halo2 should be formalised and documented in the Halo 2 book. In particular, assuming a "nightly -> beta -> stable" feature workflow from zcash/halo2#707, the review policy should be equivalent to the ECC review policy for any code landing in (or being moved to) the stable feature set, but could be weaker for experimental features targeting nightly.

  1. Contribute reviews and maintain a workflow for external reviewers (adapted from zcash/halo2#709):

Since many external pull requests are in use, or will be used, mainly by projects outside of the zcash GitHub org, we should enable these stakeholders to contribute reviews. This will also lighten the review load of the ECC team, since external reviews would count toward the repo's review policy.

This milestone involves setting up and maintaining a workflow for external reviewers to "sign up" for contributing reviews. Some possible workflows include: setting up a bot, having a GitHub team with permissions scoped for review, and having PR delegates along with a Discord channel for coordination.

The halo2 community manager will also contribute reviews.

  1. Administer a workflow for 'code maintainers' (adapted from zcash/halo2#710):

There is a clear desire for a wide set of new features to be upstreamed into the halo2 repository or newly developed for it. Some of those features can be developed orthogonally, but many will have some level of interaction with each other. Additionally, while several of the proposed new features are generally useful, others have more targeted use cases that ECC in particular does not have the resources to maintain on behalf of the community.

A workflow for defining "code maintainers" should be established, to delegate responsibility for maintenance of various sub-components within the repository. This would ease the overall maintenance burden, and make feature inclusion more likely overall (though still subject to analysis with regard to the overall UX of the repository's crates). The halo2 community manager will play an active role in delegating reviews.

Documentation, Education, and Community

As specified in the above section, the deliverables of this proposal include the documentation of review policies, external reviewer workflow, and code maintainer workflow. In addition, the halo2 community manager will:

  • help organise biweekly "Halo 2 Developer Calls" involving the ECC team and the community;
  • provide support in the "Halo 2 Ecosystem" Discord; and
  • participate in external community calls (e.g. halo2-ce's biweekly call).

Other Deliverables

See above section.

Milestone Summary

Milestone No. Milestone Summary & Staffing Funding Estimated Timeframe
1 Document the review policy for the halo2 repository $0 Jan 2023
2 Contribute reviews and maintain a workflow for external reviewers $9000 Jan 2023 - Jun 2023
3 Administer a workflow for defining 'code maintainers' $9000 Jan 2023 - Jun 2023

Total Budget Requested

USD 18000

Maintenance and Upgrade Plans

This proposal is scoped to a 6-month period, and should be re-reviewed for renewal or possible restructuring at the end of this period.

Team

Contact Info

[email protected]

Team Members

  • Ying Tong - therealyingtong (GitHub)

Team Website

therealyingtong (GitHub)

Relevant Experience

Ying Tong is one of the authors and maintainers of the halo2 library. She was previously an ECC employee and also liaises regularly with external teams. She helped to run 0xPARC's "Halo 2 Learning Group" and "Halo 2 Working Group", the latter of which was also funded by this grant.

Team code repositories

halo2 contribution history

Additional Information

@therealyingtong
Copy link
Author

Closed in favour of a Zcash Community Grants application.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants