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.