Site icon Blaize

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?

SDK stays for Software Development Kit and is aimed to be a set of dev tools that are necessary to build software. A standard SDK usually contains all tools that are needed during development processes like editors, compilers, drivers, documentation, debuggers, libraries, and code samples. One SDK is designed to adapt to one specific programming language for blockchain, so if you write on Python you need a Python SDK toolkit, and JavaScript SDK to write on Javascript.

Why do we need an SDK for Blockchains?

Basically, our main task is to build Python and Java SDKs for Celo framework in order to broaden the ability to programming while not using only Javascript, as it is now. This may help to extend the Celo developer’s community and contribute to its wider application.  

Get ahead of the game and take your GameFi development to the next level by leveraging our expertise in building Python and Java SDKs for the Celo framework and contact with us.

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!

Project architecture

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.

Python and Java SDKs architecture

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.

Conclusion

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!

Exit mobile version