Increase node diversity in Cardano by creating a data node written in Go.
This is the total amount allocated to Do you want a Go Cardano node? Because this is how you get a Go Cardano node!.
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
Ales Verbic
We will develop an open source Cardano node capable of serving blockchain data, building on our prior funded project Catalyst work and other work independently developed by Blink Labs.
not applicable
The project is and will continue to be open sourced under the Apache 2.0 license
This proposal intends to create a data serving capable (non-validating or block producing) Cardano node written in Go. It will utilize our past funded project Catalyst proposals from Fund 9 and Fund 11 to produce a node capable of serving as a foundation for a dApp off-chain software stack using both Ouroboros and UTxO RPC protocols.
Golang is an extremely popular programming language. GitHub Language Statistics from GitHut 2.0 (code: https://github.com/madnight/githut ) show that in Q1 2024, the number of pull requests on Golang repositories grew 10.262% and Haskell repositories grew only 0.132% (source: https://madnight.github.io/githut/#/pull_requests/2024/1/Go,Haskell ) while the number of repository stars on Golang repositories grew 12.275% and Haskell repositories grew only 0.236% (source: https://madnight.github.io/githut/#/stars/2024/1/Go,Haskell ). The Golang developer community is over 4x the size of the Haskell developer community, based on the number of Github repos with code for each. Since it’s hard to judge community size, we’re using these numbers as a proxy. We hope to bridge the gap between Golang developers and the Cardano blockchain and attract more developers to Cardano.
Creating a Golang node for interacting with the Cardano blockchain and serving blockchain data will allow tapping into a much larger pool of developers than the existing Haskell node and libraries generally allow. This will also lower the barrier for entry into the Cardano ecosystem. Increasing node diversity in the ecosystem helps prevent a single security issue or bug from taking down the entire network at once.
Blink Labs has decades of experience delivering open source software. We have a proven track record of delivery and have successfully completed two previous Catalyst Fund 9 proposals. We have two open funded proposals from Fund 11 and have met every milestone; we are on target to complete them before Fund 12 onboards. Our work is open source and public for all to view. Our team is highly cohesive and have worked together for years, allowing us to provide accurate time and cost estimates to our work.
Creating a Cardano node is a monumental task which requires dedicated resources. Funding allows us to dedicate engineering time to an open source project, rapidly accelerating its development.
Our goal is for the Go Cardano node to become an integral part of a Cardano development stack for Golang developers upon which a Golang ecosystem on Cardano can thrive. To accomplish this goal, we will build the Go Cardano node to support a diverse capability set, allowing for creation of an entire ecosystem of downstream projects.
We have broken this into 4 technical deliverable milestones to reach this goal.
Blink Labs will create GitHub issues for the individual items of work and will track those items using a project board on GitHub. GitHub project milestones will correlate with proposal milestones.
Milestone 1 will deliver blockchain storage for our Go Node. This will include storage for:
Milestone 2 will deliver Ouroboros node-to-node support.
Milestone 3 will deliver Ouroboros node-to-client support. This will include support for:
Milestone 4 will provide support for transaction submission gateway.
Our 5th and final milestone will wrap up the project, including the Project closeout report and video. The project closeout report will include a comprehensive summary of project objectives and evidence of goals achieved. The project closeout video will provide a visual overview of the projects journey, start to finish, highlight key achievements, and showcase the net products: a Go Node with developer documentation.
The project development will be completed by the Blink Labs engineering team. Our team includes Principal / Staff Engineers, with more than 40 years combined experience. This project will be primarily assigned to Aurora Gaffney (https://github.com/agaffney ) for development completion, with Chris Gianelloni (https://github.com/wolf31o2 ) and Ales Verbic (https://github.com/verbotenj) providing code review, documentation, and support.
Blink Labs has previously completed two Catalyst Fund 9 proposals:
Blink Labs has two Catalyst Fund 11 proposals underway, meeting each scheduled milestone and on target to complete both before Fund 12 on-boards.
Additional Blink Labs staff may be used for administrative functions, such as project management and community reporting.
Funding will primarily pay for engineering time. There is also a small piece set aside for paying administrative staff for project management.
The project budget is 72,950 ADA per month to pay for Engineering (72000) and Project Management (950). Each milestone corresponds to a month, and time is allocated to take approximately 75 percent of a full time software engineer or 120 hours and approximately 10 hours of project management.
No additional funding is necessary for third party products or services.
Costs are estimated on a 215 ADA per hour rate for a senior golang blockchain software engineer and 170 ADA per hour rate for a golang blockchain software engineer working remotely within the United States (~ $196k USD annually and ~$156k USD annually, respectively) and 95 ADA per hour rate for a project manager working remotely (~ $86k USD annually)