How to Develop Python and JAVA SDKs For Celo Blockchain
Celo framework is a mobile-first blockchain platform. Celo blockchain is hosted by the Celo Foundation which main aim is to make blockchain-based payments worldwide accessible and ease usage of cryptocurrencies. Blaize team was honored to be a part of a Celo Foundation grant program and develop Python and Java SDKs for the framework.
Blaize is grateful for Celo Foundation’s trust in the process of developing Python and Java SDK for Celo blockchain. Hope our commitment will lead to further cooperation.
What is an SDK in blockchain?
Why do we need an SDK for Blockchains?
Celo project overview
Primarily we have divided the project into two main tasks. The first one is Java SDK development, and the second one is Python SDK development. Each part corresponds to the separate milestone, named accordingly.
Each milestone consists of two steps. The first is to develop the whole functional part, while the following is to write unit tests along with documentation preparation and finalization. We worked in a team of 4 developers concentrating on back-end blockchain development in particular.
Want to get a deeper understanding of the code? See the whole project documentation in Blaize Github!
We have built the main object that the SDK users will utilize in Celo. This base kit allows to set the parameters of the wallet such as cost and amount of gas per transaction, create new keys, or use existing ones and create contract objects.
At the moment, wrappers for all main contracts of the Celo Protocol have been finished and successfully held the test phase. Wrappers represent a separate class where all the main requests for the contract are already registered. Therefore, the user does not need to re-write requests, he will simply use our class (wrapper), which will greatly speed up and simplify the whole work.
Need skilled developers to build a solid SDK? You can find them in Blaize!
Challenges we faced
There are some unique exceptions in the Celo blockchain framework that are not presented on any other platform. It creates some difficulties while configuring it with other applications.
The Eth Account library was chosen as the most suitable for transaction formation. Yet, due to the uniqueness of the transaction body in Celo blockchain, we had to customize this library so that we could construct our own transaction and sign it.
Another difficulty was to write utils of various kinds. Utils are methods that hash data or help to convert one data type to another and therefore represent one of the main functionality of the whole kit. That is why we needed to spend a great amount of time to study the existing SDK precisely and only then implement our utils in the Python SDK.
Read Also: In-House Vs Outsource Blockchain Development.
Celo Foundation is doing an enormous job regarding blockchain and cryptocurrency worldwide adoption. The whole Blaize team is extremely glad to be a part of such a huge and impactful initiative!
As you can see, building a well-documented and convenient SDK does not always be an easy task. In terms of SDK development for a blockchain-based environment understanding the technical specifications is a crucial thing.
Frequently Asked Questions
Should my project develop an SDK?
Of course, your project can survive without an SDK. However, in this case, a lot of this pre-built functionality would have to be made from scratch. The thing is that SDKs not only let you create new tools efficiently, but also make the process easier for everyone involved because everything is pre-built.
That is why the answer to your question is you don’t have to create and SDK, but it’s nice to have one.
Why is an SDK important in blockchain development?
A Software Development Kit is an integral part of working on any blockchain since it usually contains all the necessary tools for successful development like editors, compilers, drivers, documentation, debuggers, libraries, and code samples.
What pitfalls can be encountered when creating an SDK for Celo?
Celo has some unique exceptions in its blockchain framework that are not presented on any other platform. For instance, Celo’s transaction body. Such unique features create some difficulties while configuring it with other applications.
Can you help me create Java SDK for the Celo blockchain?
Blaize experts can create any Software Development Kit according to your needs and requirements. Contact our team to learn more details and discuss your project.
Build a strong SDK toolkit with Blaize!