Open john-light opened 7 years ago
Can you elaborate on the motivation? It seems to me that installing, starting, stopping and updating a Zcash node take just a few command lines (or a trivial shell script) each.The status of the node is reported in metrics screen (say, with screen
/tmux
over SSH). What extra needs justify $15K worth of development?
The idea is to make the node extremely easy to setup and monitor. Once running, only a web browser is necessary to monitor performance - no need to know how to use SSH. This can make it possible for a less technical user to operate a node. The biggest efforts will be GIU, integrating an automatic update process, testing, and responding to the inevitable support requests. We can probably sale the effort to meet a cost target or do it in phases if desired.
Every informal proposal has multiple reviews by the review committee. The reviews are being collected and discussed in a private google doc (the 5 reviewers all have edit access to it, no one else can view it). By way of early, informal feedback, the reviewers would like to inform you that your proposal is not a leading candidate for funding in this round.
You may still choose to submit a full proposal by October 6th, and it will be evaluated. But if it’s substantially the same as discussion so far reflects, then we suspect it is unlikely to be chosen for funding; and if it isn't, then we encourage you to post a draft as early as possible, to allow for community feedback. Regardless of your choice we thank you for participation thus far.
Hello Zcashers! I am the co-founder of Bitseed, a project with a mission to make it easy for anyone to run their own bitcoin full node. In the past we have experimented with altcoins, including Namecoin and Litecoin, and thought this grant would be a good opportunity to fund development support for Zcash. Here is our first-draft grant proposal for this project:
Motivation and overview
Full nodes are an important infrastructure component of any cryptocurrency network. Full nodes strengthen the censorship resistance of a cryptocurrency network by relaying new blocks and transactions to peers and uploading archival blockchain data to new peers on the network.
Additionally, full nodes are important to cryptocurrency end users, including miners, senders and recipients, and researchers. Miners use full nodes to ensure that they are building valid blocks on top of the most difficult valid blockchain. Senders and recipients use full nodes to validate their own transactions and preserve their financial privacy. And researchers use full nodes to analyze blockchain data and gauge the health of the network by measuring connectivity with peers.
The goal of this project is to make it easier for Zcash users to run their own full nodes. We will be adapting the software we have developed for bitcoin to Zcash and releasing it all under open-source licenses (scripts are GPL, UI is MIT). The intended configuration is that users run this software on a machine that is always on and connected to the internet (such as a personal Linux server running in their home or office).
Further reading:
https://bitseed.org/the-different-kinds-bitcoin-full-nodes/
https://medium.com/@lopp/to-node-or-not-to-node-48da1b6d7091
https://medium.com/@lightcoin/aside-from-being-able-to-validate-that-ones-transactions-were-included-in-the-most-difficult-valid-5799f868e946
https://www.coindesk.com/spv-support-billion-bitcoin-users-sizing-scaling-claim/
Technical approach
This project will consist of three main components:
You can find links to the current versions of these resources, originally developed for bitcoin, here:
Scripts: https://github.com/bitseed-org/bitcoin-box
UI: https://github.com/bitseed-org/bitseed-web-ui
Updates: https://bitseed.org/device/
The risks and unknowns are the timeframe to complete the project. We may run into unanticipated issues with adapting the software to work with Zcash that could introduce delays into our delivery schedule. Given that the Zcash and Bitcoin Core codebases are so similar, we do not anticipate any lengthy delays, but we are giving ourselves a generous delivery deadline to account for such possibilities.
Team background and qualifications
Jay Feldis - Jay has over 25 years of experience leading the development of consumer electronics products in Silicon Valley. As a founding member of Logitech’s webcam product group, Jay helped to create and define webcams and video communication as consumer products. His experience includes key roles leading hardware, software, and program management teams through all stages of development from product conception and system design to manufacturing and retail launch. Jay holds a BSEE of Cornell University.
John Light - John has experience managing operations, marketing, and business development at early-stage startups, serving as a professional advisor to companies building on the blockchain while researching and publishing work on the topics of Bitcoin, digital identity, reputation, and trust. He previously founded the Buttonwood SF Bitcoin Club, co-founded two Bitcoin startups, wrote the book Bitcoin: Be Your Own Bank, and has been a speaker on the topics of Bitcoin, digital identity, and the power of the blockchain at numerous public events.
Konn Danley - Konn has over 25 years of experience in the design and development of a broad range of consumer and space electronics using ASICs, SoCs, Advanced Verification (SystemVerilog/SystemC), FPGAs, PCBs and embedded and application software. Products include satellite and cable set-top boxes, packet routers, image processing subsystems and multifunction peripherals. Konn also contributes to the areas of online marketing and web design and development. He holds a BSEE from the University of Maryland, College Park and a MSEE from CSULB.
Mike Doty - Mike has over 25 years of experience in mechanical engineering and design, including manufacturing, design, analysis, testing, and systems integration. He has designed machinery, small mechanisms, space craft structures, printed circuit boards, wiring harnesses, and electronic packaging, utilizing hands-on CAD and machine shop experience fabricating prototypes, along with the use of rapid prototyping (3D printer) equipment and technologies. Mike has a BS Degree in Engineering and Applied Science from the California Institute of Technology. He is a Certified Quality Engineer (CQE) and Certified Reliability Engineer (CRE).
Evaluation plan
The end result if this project is successful will be a suite of tools for Zcash that provide identical functionality offered by our bitcoin full node tools: automate the deployment and upkeep of a Zcash full node, provide users a web UI to administrate and monitor the status of the Zcash full node, and offer regular Bitseed software updates for one calendar year after final delivery of the first official release of the Bitseed Zcash full node software suite.
Security considerations
Benefits: as mentioned earlier in this document, full nodes provide benefits to both individual Zcash users and to the network as a whole. Full nodes help provide better security and privacy to individual users by enabling them to validate that their transactions have been confirmed on the blockchain, and by eliminating the need to share their wallet information with third party servers. Full nodes help increase the censorship-resistance of the network by adding redundancy to the propagation of new transactions and blocks and increasing the number of peers that are uploading archival blockchain data to new peers that have joined the network.
Risks: Bitseed is a third party providing critical infrastructure software to users of the Zcash network. Some of these users may rely on this software to ensure the security and privacy of their transactions. As such, we are one more party that users may need to trust in addition to the original developers of the Zcash software that Bitseed software is built to support. We work to mitigate this risk by releasing all of our software open-source, delivering our software over connections secured by HTTPS, and providing users with the option of building our software from source rather than install via binaries.
User education: Our software is designed to be "plug and play", and the instructions we provide for using and updating the software are written in such a way that the user is always using the software in the most secure way available.
Schedule
November 2017: Development begins
January 2017: Scripts adapted to Zcash
March 2017: UI adapted to Zcash
April 2017: Update infrastructure in place for Zcash-related software updates
May 2017: Final delivery of the first official Bitseed Zcash full node software release
Budget and justification
$15,000
Final note
Although not within the scope of this specific project and proposal, I thought it would be worth pointing out that this project will lay the groundwork for future potential projects that will enable Zcash users to "pair" their light mobile or desktop wallets with their own trusted Zcash full node, eliminating the dependency that such wallets typically have on trusted third party servers.
cc @jfeldis