You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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.
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.
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.
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.
RFP Proposal:
halo2 Community Manager
Name of Project:
halo2
Community ManagerLink 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'sezkl
, 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 thezcash
project as:halo2
library;halo2
library could make it easier to support future upgrades and extensions of thezcash
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 thehalo2
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 ashalo2-ce
.Development Roadmap
halo2
repository (adapted fromzcash/halo2#708
):Currently, the
halo2
repository follows ECC's review policy for code that ends up inzcashd
(aszcash/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 targetingnightly
.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.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:halo2-ce
's biweekly call).Other Deliverables
See above section.
Milestone Summary
halo2
repositoryTotal 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
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 historyAdditional Information
The text was updated successfully, but these errors were encountered: