RFP - Run Your Own Zcash Full Node

Zcash Community Grants
Request For Proposal (RFP)

Run Your Own Zcash Full Node

This RFP is available in a PDF format for sharing here:


  1. Project Description

The Zcash Community Grants (ZCG) committee is inviting qualified individuals or companies (Grantee(s)) to submit a proposal to develop an easy-to-use product that allows Zcash users to run their own full node.

The relationship between the winning Grantee(s) and ZCG shall be that of a grantee and grantor, governed by standard grant terms and conditions.

  1. Background and History

ZCG exists to fund projects that advance the usability, security, privacy, and adoption of Zcash, a privacy-focused cryptocurrency. Here’s what we’ve funded so far.

Formerly known as the Major Grants Review Committee, ZCG was created by community members of the Zcash cryptocurrency in ZIP 1014, working within the Zcash governance process.

ZCG’s funds come from the decision in ZIP 1014 to allocate a portion of all newly created Zcash—over a four-year period—to the ZCG.

Legally speaking, ZCG is a technology advisory board that constitutes a committee of the Zcash Foundation, under its bylaws. Grants are chosen by a committee of five members who were chosen by the Zcash Community Advisory Panel in an open election.

Operational support is provided by the Zcash Foundation.

Resources:

  1. ZCG Responsibilities

ZCG will provide the Grantee(s) with all available relevant information to aid in the successful completion of the project. ZCG will also provide:

Aside from funding, ZCG can provide you with ourselves as guests, our feedback as listeners, and are happy to try to use our inroads with ZF, the ECC, and the Zcash Community at large to help you connect with potential guests.

We will amplify any endeavor we fund wholeheartedly through our official and personal social media presences.

  1. Project Assumptions

The following assumptions were made in the development of this Scope of Work:

This integration will cover the complete scope of requirements listed with deliverables spread across milestones as suited by the applicant. The development activity must preferably take place publicly for transparency and history. All implementations for server setup must preferably be licensed under MIT License.

  1. Proposal Submittal and Contacts

The Grantee’s proposal shall be submitted to the Zcash Grants Platform in PDF format unless ZCG has otherwise requested supplementary materials in a different format. Late submissions will not be accepted.

Questions should be directed to ZCG.

  1. Project Schedule

The anticipated project schedule is summarized as follows:

05/02/2022 RFP Posted
TBD Proposals Due
TBD Contract Awarded
TBD Final Deliverables Submission Deadline
  1. Project Background

According to Blockchair, there are currently 240 nodes operating on the Zcash network. Full nodes are the backbone of the Zcash network. By validating and broadcasting transactions without relying on third parties, they help keep the network decentralized. Each full node adds to the security and robustness of the Zcash network.

The development of a plug-and-play full node would remove technical barriers and allow more users to participate in the Zcash network. Similar devices exist for Bitcoin and are developed by companies such as Start9 and Umbrel. These products have been extraordinarily successful.

  1. Scope of Work

The goal of this project is to make it easier to run a Zcash node and related server side software by removing technical difficulties for users. This can be accomplished by building a plug-and-play full node from scratch or integrating Zcash into an existing hardware device.

Technical Approach

The project should include the following components:

  • Automated scripts: Scripts to automate the deployment and maintenance of a Zcash full node. This includes support for both zcashd and zebrad full node options. The scripts will start the Zcash daemon and keep it synced with a full copy of the Zcash blockchain. It should also check for tagged updates when available.
  • Add support for the user to host their own lightwalletd instance, accessible from the default ports and IP/host name.
  • Update infrastructure: Automated software upgrades to node operators.
  • Zcash UI: A web-based user interface that is used to administer the full node and lightwalletd instance from within the local network or monitor the node’s status from outside the local network. This shall utilize the available RPC commands via secure credentials and have hardened security on the local network.
  • Troubleshoot: If there are reorgs detected in either the full node or lightwalletd, there must be an option to re-index the chain within the user interface.
  • Documentation: A user manual that helps users quickly install the node, provides basic information for troubleshooting issues, and answers frequently asked questions. The documentation should also include links to follow up online on further information from the GitHub repositories and online documentation section.
  • Audit: The implementation must be audited via a separate grant sourced from ZCG.
  1. Proposal Requirements

The Proposal shall outline the Grantee’s Scope of Services, which at a minimum must include the criteria set forth within this Request for Proposal, and the Grantee’s approach to administering and completing the project. The applicant/team must have the following:

Requirements:

  • A strong understanding of running blockchain full node, networking & security fundamentals
  • Experience building similar full node products
  • Good documentation skills

Nice to Haves:

  • Prior experience working on Zcash-related projects or with Zcash developers
  • Experience deploying and maintaining blockchain infrastructure
  • Previous technical writing experience to help with documentation manual
  1. Selection Criteria

The applicant must attach links to the team member’s resume and links to related prior completed works. All proposals submitted for this project will be evaluated. ZCG will review the Proposals and make a selection based on the best value, considering the following selection criteria:

Criteria Standard Weighting Factor
Cost Does the Grantee(s) provide a cost proposal that is deemed reasonable for the complexity of the work to be undertaken? Does it provide “value for money”? 4
Personnel Qualifications Do the assigned personnel have the skills and experience to produce the project’s desired outcome? Have personnel demonstrated success in these roles with documented examples of direct experience with this type of work? 3
Project Approach Does the Proposal approach show an understanding of project constraints and meet the project objectives? Do the proposed work hours accurately reflect the level of effort required to complete each Project task? Does the Proposal approach demonstrate an efficient, reliable plan of progression and achievable timeline? 3

The criteria scale ranges from 1 to 10: 1 is poor, 5 is average, and 10 is outstanding. Criteria will be multiplied by the associated weight to give a weighted score, which will be summed for a cumulative score. The maximum possible cumulative score is 100.

  1. Diversity Statement

ZCG believes in providing equal opportunity to all business enterprises to participate in all aspects of the ZCG grant program without regard to race, creed, age, sex, national origin, ethnic identity, physical or mental disability, veteran status, marital status, economic status, religion, sexual orientation, gender identity or expression, or any other legally protected basis, and will conduct its grant program so as to prevent such discrimination.

Recognizing that some individuals, groups, and business enterprises, including Minority Business Enterprises, Women Business Enterprises, Disability-Owned Business Enterprises, LGBTIA+ Owned Business Enterprises, and Veteran-Owned Businesses, have not historically received opportunities to participate equally in contracting opportunities and to ensure and reaffirm ZCG’s continuing commitment to progress and succeed in achieving the goal of equal opportunity, ZCG is committed to the goal of enhancing economic opportunities for Diverse Businesses. ZCG will make every good faith effort to identify and utilize Diverse Businesses.

A Grantee that is a Diverse Business may establish its qualification by providing to ZCG:

  • Its certification status from a federal, state, or local governmental agency; or
  • Documentation that would enable ZF to verify that the Grantee qualifies (examples include community engagement, public declarations, etc).

This method is designed to cover those Grantees who are easily verifiable, such as sole proprietorships, small partnerships, closely-held corporations, and small companies that do not engage in significant government business or do not have the resources to seek a governmental or third-party certification. ZCG will provide minorities, women, persons with disabilities, LGBTQI+ persons, and veterans equal opportunity to participate in all aspects of contracting programs.

It is not the policy of ZCG to provide information or other opportunities to Diverse Businesses that will not be available to all other business enterprises. It is the intent of this statement to establish procedures designed to assure Diverse Business access to information and opportunities available to other business enterprises. ZCG’s intent is to widen opportunities for participation and to increase competition.

Definitions:

  • “Disability-Owned Business” means a business enterprise which is Owned and Operated by one or more persons with disabilities.
  • “LGBTQI±Owned Business” means a business enterprise which is Owned and Operated by one or more lesbian, gay, bisexual, transgender, queer, intersex, and other sexual and gender identities (“LGBTQI+”).
  • “Minority Business Enterprise” means a business enterprise which is Owned and Operated by one or more of the following ethnic minority groups: African American, Hispanic/Latino, Asian American/Pacific Islander, and Native American.
  • “Owned and Operated” means (1) the business enterprise is at least 51% owned by a person or persons within one of the respective diversity groups, or in the case of any corporations, limited liability companies, or partnerships, at least 51% of the voting stock or interests, as applicable, is owned by a person or persons within one of the respective diversity groups and (2) the management and daily business operations of the business enterprise are controlled by a person or persons within one of the respective diversity groups.
  • “Women Business Enterprise” means a business enterprise which is Owned and Operated by one or more women.
  • “Veteran-Owned Business” means a business enterprise which is Owned and Operated by one or more veterans
  1. General

  2. Selection of a Grantee(s) will be based on the selection criteria described above. The proposal shall address all of the selection criteria.

  3. All pre-award costs related to Proposal generation shall be borne by the Grantee(s).

  4. Proposal information is not considered confidential or proprietary. Trade secrets and other proprietary data contained in Proposals may be held confidential if the Grantee(s) requests, in writing, that ZCG does so, and if ZCG agrees, in writing, to do so. Material considered confidential by the Grantee(s) must be clearly identified. Such confidential/proprietary information must be easily separable from the non-confidential sections of the Proposal. Marking the entire Proposal as proprietary will be neither accepted nor honored.

  5. A potential or actual conflict of interest exists when commitments and obligations are likely to be compromised by the Grantee’s other material interests, or relationships (especially economic), particularly if those interests or commitments are not disclosed. Therefore, it is the Grantee’s responsibility to disclose any real or perceived conflict of interest with an officer or senior employee of the Zcash Foundation or a ZCG committee member, at the time of RFP submission and anytime during a subsequent grantor/grantee engagement, Updated Zcash Foundation and ZCG rosters can be viewed here.

  6. Grantee(s) may be required to agree to AML/KYC requirements as set forth here. Applicability of these requirements will vary based on multiple factors, to be determined at the time of grant award.

Upon ZCG approval, the selected Grantee(s) shall submit their winning proposal to the grants platform for tracking, milestone payment (if applicable), and transparency purposes. Instructions regarding community posting and update requirements will be provided upon grant approval.

17 Likes

Scripting commands, creating a blocking event and piping the output to be parsed is easy enough but I havent gotten very far so yeah tbis should be a piece of cake for someone more knowledgable

3 Likes

Curious how this differs from the existing grant :

ZBI is supposed to make it easy to deploy many Zcash nodes?

3 Likes

The goal of this RFP is to get Plug & Play node software & hardware makers to streamline Zcash node integration, with the overall aim to increase node count by allowing hobbyists who are not technical to support the decentralization of Zcash nodes.

6 Likes

This is as easy as it gets! Great RFP! Raspberry pies are good for this.

3 Likes

In theory, yes but with Zcash it’s not so easy. You at least want a 4GB version:

And last I checked there was no ARM binary that was available from ECC or ZFND, you have to cross complile every time there is an update (or every 16 weeks whichever comes first)

I assume the scope of this RFP would address that issue?

My poor Pine64 I bought just to run a Zcash node 24/7 is sitting there collecting dust because it’s such a broken system to get Zcash software on to it :pensive:

3 Likes

All deployable code of Zcash should be available as an image

1 Like

ZCG may want to consider expected performance of hardware. As noted, there has been an effort to have people run BTC nodes on Raspberry Pi hardware. However, some people suspect that all the RPis may be slowing down BTC block propagation. This write-up suggests a BTC network slowdown, but doesn’t mention the RPi hypothesis:

Verification of shielded transactions will be more computationally expensive than transparent ones. Should there be performance targets?

4 Likes

Is a lack of full nodes really the biggest problem facing Zcash?

I think there are sufficient full nodes to meet the limited demand for transactions.

It is the inability to easily use Zcash to pay for goods and services that is holding back its potential to be something transformative. Solve this and any lack of full nodes will solve itself. If more transactions were happening and straining the network’s capacity, people would figure out how to run full nodes on their own. Or hosting providers would make Zcash nodes a one-click install.

I think this grant proposal is trying to fix a problem that the market will be able to fix on its own.
A much better use of grant money would be to drive the ease of transacting.

1 Like

Hello,

Really like the proposal but wanted to clarify. I’m not quite sure I understand the scope of work here given the bulk of the stacks mentioned are already dockerized and setup for production environments.

It seems like the only thing being added is a UI that provides RPC API to user instead of command line?

2 Likes

Surely it’s about making it easier? While it’s all possible, it isn’t easy, particularly when running on ARM where there are no binaries (or images) currently available? Not to mention having to manage the updates every 16 weeks etc… Having that all neatly packaged and documented with a nice UI would be a great addition, in my opinion. As per MikeInMass’s post above you can argue whether it is a priority but it’s a nice to have.

10 Likes

In full agreement that every bit of focus should be on making it easier, that is the priority. To help aid this effort, it seemed valuable to gauge the design of the “zcash / lwd orchestrator” described above.

There was a minor concern about the starting point and code/tooling reuse, not the described design, but creating a GUI that does all the zcash and lightwalletd operational management/deployment sounds exciting.

For what it is worth, there are efforts to additionally aid the described design through dedicated ipfs gateways, daily chain snapshotting, and improved node alerting.

7 Likes

Agreed, a lot of “problems” might be solved with an increase in adoption and ease of transacting with ZEC. We have more proposals targeted at increasing adoption on the way.

As described in the post, this RFP is targeting existing makers of node software & hardware which have one-click install, management, and Plug-and-Play hardware solutions like Start9 and Umbrel.
ARM support from the solution providers would be we appreciated as well.

Agree, we can discuss specifics when we receive an applicant and request a higher minimum spec. hardware for running Zcashd, maybe Zebrad would do a better job at running light? :slight_smile:

2 Likes

The ultimate value of gracefully orchestrating these specifics is what unlocks usability. The tech is already here.

3 Likes

We can provide hardware requirements and data needed to guide these efforts. There exists tons of potential here as the focuses could shift to not only usability, but reliability as an asset. Especially considering any PoS cases, or current PoW systems.

2 Likes

Agree with @aiyadt about targeting the existing plug-n-play options. I have played with both and would personally recommend Embassy by Start9. Chiefly because they have sought from the beginning to be a generalized OS for hosting any kind of server-side software, using the bitcoin stack as a proof of concept, as opposed to a node project that is trying to shoehorn an appstore into a docker-compose scheme.

This would give one-click installs to thousands of existing Start9 users essentially overnight. They use the 8GB Pi currently, which works fine, but are adding the option of higher end hardware (x86), built by Purism. I don’t have the bandwidth for this atm, but anyone interested may like to check out their dev docs (Start9 | Developer Docs) or chat with them in their channels.

3 Likes

Below is an interaction I had with the cofounder of Start9Labs, they seemed open to supporting Zcash at some point, but that was almost 2 years ago. I will reach out to them to see if they may be interested and point them to the RFP on the Grants platform.

1 Like

Awesome, thank you for reaching out to them!

My understanding is that they are open to most open source software, but intend to focus on the OS while leaving service packaging to the service developers / community, as is done on other platforms.

1 Like

Jump in this thread to show demand for Zcash support!

2 Likes