completed
CardanoPlusPlus, a C++ Library
Current Project Status
Complete
Amount
Received
$24,600
Amount
Requested
$24,600
Percentage
Received
100.00%
Solution

Build a librarie that will help ease C++ development for Cardano.

Problem

There is no common libraries to help C++ Developers build on Cardano.

Addresses Challenge
Feasibility
Auditability

Team

1 member

CardanoPlusPlus, a C++ Library

C++ is a language that has remained current over time and is valued for its great performance that it offers in more complex programs and its low resource consumption.

A C++ library could be integrated with graphics engines such as the unreal engine, for example, image recognition systems (opencv) or cross-platform frameworks such as QT allowing to cover more devices including open source mobile devices like pinephone, librem 5 and mobile OS like Sailfish, this could help us to have more adoption in the cardano ecosystem, as it would not be limited to development on more popular operating systems. According to linkedin, to date there are 532 developers who have knowledge in C++ and who are familiar with the Cardano ecosystem that could benefit from such a library, this number may increase as this decentralized finance platform gains popularity over time and give they tools to develop in the ecosystem.

This library will allow you to do the following:

  • Management of seeds compatible with the Icarus standard (creation, restoration)

  • Multi-account management from a seed

  • ADA management (transactions, delegation)

  • Native asset management

  • NFT management

  • Implement the use of smart contracts.

Due to the interest of porting the code and improving its performance, most of the base libraries that make up the project will preferably be written in C how cryptography, key generation (using standard C++ libraries) and the use of C++ functions will be in the part where the code interacts with the programmer. The library in general will adhere to the C++11 version.

I uploaded a preview of the first phase on github for you can see the code.

All dependencies will be included in the library, I will avoid using external libraries like openssl for example, allowing it to be more portable.

It is important to mention that security will be emphasized, deleting sensitive data in memory when it is freed or when memory reallocations are made.

The project will be carried out in phases, in each phase time will be allocated for its investigation and implementation, which includes programming and debugging. Once a phase is finished, the files of this phase it will be uploaded to the github repositories.

For now, the challenge more important will be understanding how the protocol works and how to interact with the blockchain.

The solution, research, read documents from official sources of cardano (read document of plutus pioneer program for example) or other cryptos like bitcoin, analyze programming codes from official sources. etc

Another challenge is to get advanced knowledge of the functions and tools of the github platform. The solution, I plan to take a course on udemy about it.

My work will be divided into phases, it is how I have been working for a while and in each one I calculate an approximate time of work

1- Bip39 standard implementation phase (CIP 3)

96 hrs aprox

2- Bip32-ed25519 standard implementation phase

168 hrs aprox

3- Bip44-ed25519 standard implementation phase (CIP 1852, CIP 1854)

168 hrs aprox

4- Address serialization and deserialization phase

120 hrs aprox

5- Serialization and deserialization phase of data structures that allow interaction with the blockchain

5.1. - implement send, receive, delegation and withdrawal of delegation in ADA

60 hrs aprox

5.2. - implement Native asset management

100 hrs aprox

5.3. - implement NFT management

106 hrs aprox

5.4. - implement the use of smart contracts.

118 hrs aprox

6- Phase of integration of functions, testing and stable release of the library

48 hrs aprox

Total Estimate: 984 Hrs.

I estimate that the development of the library will take a period of 4 to 6 months.

Only a rate of $25 per hour will be charged.

Total Estimate: 984 Hrs x $25/hr = $24600

no members

Once a phase of the project is finished, it will be uploaded to github and will continue to be done consecutively until the project is complete.

Success will be seen based on results.

In each completed phase it is planned to upload a test file demonstrating the developed functionality.

I also see the possibility of creating a wiki in the same repository where it is taught how to use the library once it is completed.

It is a new proposal

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00