Last updated 2 weeks ago
The Ledger layer is responsable of the data types and respective encodings of all the data present on the blockchain; with the goal of light nodes in mind we are missing any js-friendly definitions.
This is the total amount allocated to HLabs: typescript cardano-node / ledger - cardano-ledger-ts and cbor multi ledger support. 1 out of 5 milestones are completed.
1/5
fix indeterministic CBOR parsing
Cost: ₳ 60,000
Delivery: Month 2 - May 2024
2/5
extend exsisting types to all cardano eras
Cost: ₳ 60,000
Delivery: Month 3 - Jun 2024
3/5
add not-yet-implemented types for all eras
Cost: ₳ 90,000
Delivery: Month 4 - Jul 2024
4/5
Integration with the node
Cost: ₳ 45,000
Delivery: Month 6 - Sep 2024
5/5
Closeout video
Cost: ₳ 45,000
Delivery: Month 7 - Oct 2024
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
cardano-ledger-ts is already solving this problem, this proposal covers some more work to integrate past cardano ledgers and future new ones keeping compatibility with other projects (such as plu-ts).
No dependencies.
Already open sourced at https://github.com/HarmonicLabs/cardano-ledger-ts under Apache-2.0 license
The final goal of this proposal is to have the necessary ledger module that can be re-used for different, purpose-specific, nodes; and (alongside the network and node prototype proposals) eventually a fully functional alternative implementation of the haskell cardano-node.
The (already exsisting) library DOES NOT depend on any runtime-specific functionality; however we are considering to use the dependecy injection pattern to allow to utilize runtime-specific functionalities for critical parts of the code (such as hash calculation); this would allow for more performant nodes when used properly.
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 consensus 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:
Introduce all the missing classes required for a node (Block, BlockInEra, etc..)
Extend the CBOR dependency functionalities so that CBOR can be parsed without altering the structure.
This step is crucial as there is no specification on the format CBOR encoding/decoding should follow, so the only way to correctly calculate the hash of certain data types is to hash the same exact CBOR received.
The above can be tricky especially in the case the part to hash is nested in a bigger CBOR, therefore requires parsing.
A complete cardano-ledger implementation in typescript to be reused where necessary.
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.