Last updated a week ago
We need client diversity in order to minimize the possible single points of failure of the Cardano protocol.
This is the total amount allocated to HLabs: typescript cardano-node / consensus (node prototype) - NodeJS target runtime relay node. 0 out of 5 milestones are completed.
1/5
Upstream Peers Adapters
Cost: ₳ 50,000
Delivery: Month 3 - Jun 2024
2/5
immutable and volatile db
Cost: ₳ 60,000
Delivery: Month 5 - Aug 2024
3/5
Mempool and LedgerState
Cost: ₳ 90,000
Delivery: Month 8 - Nov 2024
4/5
Chain selection and validation
Cost: ₳ 55,000
Delivery: Month 9 - Dec 2024
5/5
Close out report
Cost: ₳ 45,000
Delivery: Month 10 - Jan 2025
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
This proposal assumes the approval of the ledger and network proposals, the goal is to build a successful and testable consensus module that can be reused across multiple purpose-specific nodes.
The module depends on the successful implementation of the ledger and the network modules.
Even if the three layers are designed to be theoretically indipendent from each other the consensus module will necessarily depend on the two specified above when it comes to testing and actual usage.
This is because the consensus will necessarily require some informations about the data (blocks, txs etc..) in order to make choices and it will necessarily require the networking module in order to receive and forward data to other peers.
Without these dependencies it would be incredibly hard to build a consensus module that can work properly.
The project will be fully open source under Apache-2.0 license.
The final goal of this proposal is to have the necessary consensus module that can be re-used for different, purpose-specific, nodes; and (alongside the network and ledger proposals) eventually a fully functional alternative implementation of the haskell cardano-node.
The realization of the consensus module will come with a node prototype (meant to testnet use only) thanks the realization of the network and ledger proposals.
Primary target of the project are both developers and stake pool operator, and through them any possible user that interacts, directly or indirectly with the Cardano protocol.
Client diversity is crucial for the long term security of the protcol.
Every user of Cardano is relying, directly or indirectly, on a cardano-node in order to interact with the blockchain (submitting transactions, querying data, etc...)
So far the only aviable implementation is the Haskell one by IOG, making the node a potential single point of failure, and often accessed via centralized servers (because there is not really an alternative).
This module, alongside the network and ledger ones, will play an important role in the creation of alternative clients and light clients, with the goal of improving the network and end user securtiy.
Michele Nuzzi has been part of the Cardano ecosystem at the beginnign as a single stake pool operator and later as developer. In this time he wrote and still maintains numerous dependecy free typescript libraries that require a low level understanding of the Cardano protocol.
A non-exhaustive list list of some of the projects would be:
mempool
Upstream Peers Adapter*
aka. Connection manager, chain sync and all that stuff
*necessarily dependent on the networking module
ChainDB (Immutable, Volatile, LedgerState)
Chain selection (depends on Milestone 3)
note on the milestones above
most of them are based on the ouroboros-consensus documentation
Deliverables of the proposal are:
1) Typecript ouroboros-consensus module
2) cardano-node prototype*
*The deliverable is strictly dependend on the approval of the ledger and networking proposals
1) Michele Nuzzi
In the event multiple proposals will be approved qualified personale will be hired to guarantee the successful delivery of all of the approved proposals.
The profile required for such postion will be of a Senior Typescript developer with solid understanding of the different Javascript runtimes and relative main APIs (Web Workers, WebSockets, etc. for Browsers and worker_threads, os, fs, etc. for Node as well as other possible runtimes such as Bun.js or Deno)
At a price of 0.3828 USD per ADA the estimated cost corresponds to roughly 300'940 ADA, so we round down to 300'000 ADA to meet the challenge requirement.
The expected time to completion of the project is of 8 months considering 1 engineer for 8 hours per day for 30 days per month
60 $/h x 8h/d x 30d/mo x 8mo = 115200 $
that converted to ADA is roughly 300'940 ADA (rounded down to meet the challenge requirements)
The software generated by this proposal will likely run as part of the critical infrastructure that powers Cardano as a protocol.
The skills and knowledge required for the realization of this project are highly specialized hence the value for money should be fair.