Onboarding new developers is easier when they have tools they can use in their favorite language.
We propose the realization of such tools in the modern language of Zig (interoperable with C/C++ codebases), which will serve as a base for performance-focused applications.
This is the total amount allocated to rewrite it in Zig - ouroboros mini protocols.
None
No dependencies.
Project will be fully open source.
The ouroboros-network stack is the component that allows some program to directly communicate with any cardano-node implementation, either locally (on the same machine) or over the network (node-to-node communications).
A Zig implementation would allow for one of the most efficient implementations of the node communications, which can then be used to build (or improve) new (or existing) extremely efficient tools; such as indexers, cli interfaces, databases, etc...
the intent of the project is to be the base tool on top of which new incredible tools will be built.
Why Zig?
The choice of Zig as a language is mostly due to the incredible performances it can achieve (often comparable to C) with a strong focus on memory safety and best practices (errors as values, no hidden control flow, etc.);
Despite being a relatively young language (Zig development started in 2017) the characteristics of the language are allowing it to easily be adopted by the industry with lots of exciting projects, including the blazingly fast javascript runtme "Bun" with over 42k stars on GitHub.
TL;DR: adopting Zig means making sure that Cardano stays at the forefront of industry standards.
In the challange description, one of the "possible directions" specified is;
Developing common tools, frameworks, core infrastructures, or proof of concepts
which matches the idea of the proposal to create a tool that can work as a base for any other project who intends to use the library.
The final goal is to have an open-source library to be reused across the ecosystem.
As an open-source project, the most direct way would be the number of stars the project will receive on GitHub; indicative of the people interested in it.
As a library, the number of dependents projects (directly or indirectly) will be an incredibly useful metric.
So far Twitter has been mainly used to communicate the progress of the various projects.
Mainly the (personal) MicheleHarmonic account will be alongside the HarmonicLabs account where appropriate.
Twitter has proven itself a useful tool to share the progress and it will still be used.
for any unreported progress, the project itself has always been open source, and anyone interested should be able to use GitHub to stay updated; the repository can be found at: ( TODO insert link of repo )
We are already working on the implementation of the Ouroboros mini protocols in Typescript while the implementation has its use cases it is definitely inconvenient to be used in a scope where resources are limited, hence this proposal.
The approach is very simple; just follow the standard.
The main goal of the project (and also the main deliverable) is a Zig library that allows to talk to any cardano-node implementation.
as per specification The Shelley Networking Protocol consists of:
for a total of 8 milestones; each including:
As mentioned above, the main deliverable is a Zig library that allows to talk to any cardano-node implementation.
Everything will be open source, hence the outputs of the project will include the repository, where eventually everyone will be able to verify the work done.
The total cost of the project is estimated to be 142,132 ADA;
The amount has been calculated as follows:
The total amount of ADA allocated to the challenge is 3,158,500 ADA.
To operate with a price that is not subject to volatility over time we are assuming that corresponds to an allocation of 1,000,000 $
that would roughly correspond to a price of 1,000,000 / 3,158,500 = 0,316605984 $/ADA
or equivalently 3,158,500 / 1,000,000 = 3,1585 ADA/$
At a cost of 45 $/h (after taxes);
Since the legal entity operates in Italy we'll consider a 22% standard tax due to VAT (see source on agenzia delle entrate)
45 · (100 / (100 - 22)) =
45 · 100 / 78 =
4500 / 78 ~= 57.692 $/h
The estimated timeline for the final product is of 6 months.
assuming 6h of work a day; for 5 days a week, for 26 weeks in a 6 months period, the following should be the total cost for the project (in dollar value):
57.692 · 6 · 5 · 26 = 44999,76 $
At a rate of exchange of 3,1585 ADA/$ it becomes:
44999,76 $ · 3,1585 ADA/$ = 142131,74196 ADA
The extension of Cardano as an ecosystem to a modern programming language like Zig will allow for greater diversity and inclusivity in the developer community, allowing people with different backgrounds and educations to contribute to the protocol.
Allowing for the emerging Zig language to be part of Cardano will be a great entry point for some of the greatest engineers and brilliant minds looking for innovation.
Michele (main proposer) will be mainly responsible for the implementation.
Michele is also the founder of the Harmonic Laboratories, which has been working (and is still working) on several projects on Cardano.
If necessary, and if possible, the workload will be distributed between the developers at Harmonic Laboratories.