CardanoPlusPlus, a C++ Library
current project status
Current Project Status
complete
Total
amount
Received
$24600
Total
amount
Requested
$24600
Total
Percentage
Received
100%
$24600 Received out of $24600
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.
Impact alignment
Feasibility
Value for money

Team

This proposal was approved and funded by the Cardano Community via Project F8: Open Source Development Ecosystem Catalyst funding round.

  • download
  • download
  • download

[IMPACT]

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.

[FEASIBILITY]

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

[AUDITABILITY]

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

Community Reviews (1)

Comments

Monthly Reports

The challenges manifested in the project are being resolved, which are necessary to start working

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
11/30/2022
Comments 0

Login or Register to leave a comment!

Serializing keys to CBOR is on track to complete this month.

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
12/31/2022
Attachment(s)
Comments 0

Login or Register to leave a comment!

The planned course of git/github udemy has been completed and bip39 functionality is now being worked on in a branch on github, it was also decided to use libsodium as a crypto library.

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
11/30/2022
Attachment(s)
Comments 0

Login or Register to leave a comment!

this month i worked on the bip32-ed25519 function, it is ready, we only need to add some tests and join it to the main branch. Then I'll move on to the next phase in the roadmap, implement the Bip44-ed25519 feature

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
3. In the next 6 months
Comments 0

Login or Register to leave a comment!

The Bip44-ed25519 library and the library that shows the addresses in bech32 for both testnet and mainnet have been completed. now I working with the serialization of transactions

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
3. In the next 6 months
Comments 0

Login or Register to leave a comment!

because I had an operation at the beginning of this month (cholecystectomy), I have decided to suspend the development for this month, I will return to work on the project in October

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
3. In the next 6 months
Comments 0

Login or Register to leave a comment!

A cbor library for transaction serialization is under development. Serialization tests are also being carried out to build the structure of the transactions, using the Cardano CDDL documents as support.

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

Several developments were made for the library, which are listed below:

  1. Sending of ADAs.
  2. Submit with metadata.
  3. registration and deregistration of stake key.
  4. delegation to a pool.
  5. withdrawal of rewards.

Each of these implementations were tested in the testnet preview (Metadata keytag: 2022). In addition, the calculation of the fee and the implementation of Native scripts is under development.

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

A library was developed to create native scripts serialized in cbor and a library to serialize multi-assets in cbor, which will be integrated to manage the sending of tokens in the Cardano network.

Disbursed to Date
$24,600
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00