In this blogpost we are giving an progress update on Kuber, but before starting with that we like to give an update on our work for IOHK.
As you already might know Dquadrant is a Plutus/Haskell developing partner of IOHK since early 2021 and in the current quarter of 2022 we are taking care of Plutus community tickets next to helping with other important work.
Under the category important work we were assigned with the task to test the SECP library and integrating our testing procedures into the standard testing pipeline of the Cardano-node, which was a challenge by itself since this was never done before by any external team. Many different stake holders were involved in this process with different responsibilities and views from their responsibility angle in the delivery of SECP and the final approvement of the deliverables to be made by our team.
There was extra time pressure on this task since the whole DeFi development community on Cardano was expecting IOHK to deliver the next iteration tag 1.35.4 of Cardano-node with SECP functionality. Not making the deadline was as such not an option since it would have had severe consequences for these DeFi projects and the Cardano ecosystem as a whole.
So we can proudly communicate that our team delivered on time and has been able to meet the expectations of all involved parties. Cardano-node 1.35.4 with SECP functionality was shipped and delivered within planning by IOHK to the Cardano development community on 08/11/2022.
For the ones that don’t know what SECP is about, SECP is a library of cryptographic primitives that are used to secure transactions containing sensitive data. Cryptographic primitives play an important role in interoperability, cross-chain transactions. Everybody probably has read some news articles about cross-bridge hacks in DeFi, which only in the last 2 years were totaling for a loss of $ 2.5 B in assets. So the importance of having this library tested with appropriate test vectors may be clear.
If you like to know more about the importance of these cryptographic primitives for Cardano, please read up on the following blog-post about SECP by IOHK.
Beside the important work for IOHK our team has worked on several other tasks, below the most important ones we like to share with you.
Collaboration TxPipe.io and Dquadrant
TxPipe.io and Dquadrant are collaborating in an effort to bring more developers into the Cardano ecosystem. For this TxPipe.io is delivering an infrastructure as a service platform called Dmeter Run with a library with a broad variety of Cardano building blocks. Kuber will be added to this library to provide developers with an easy way to compose and balance EUTxO transactions on Cardano.
Developers will be able to easily deploy instances of their favorite Cardano tooling including Kuber on the Dmeter Run platform. This way developers don’t have to be aware of all the underlying infrastructure and dependencies and can start building immediately DApps on Cardano using Kuber to easily compose and balance EUTxO transactions.
Currently the implementation of Kuber on Dmeter Run is in demo stage and already working. Both teams have still some work to finish before final delivery to the public.
Once available for developers and/or students an official announcement will be made to the Cardano developer community.
Via this way we like to thank the TxPipe.io team for this collaboration to make the Cardano development ecosystem stronger.
Implementation of Plutus/Haskell code compiler in the Kuber IDE
Another important task our team worked on is the addition of a Plutus/Haskell code compiler to the Kuber IDE.
Why is this so important? In order to sign a transaction following information should be available, cbor Hex code, a valid redeemer (the data that the user provides to the smart contract) and a Plutus V2 script. The hash code (or reference) to the Plutus V2 script and the cbor Hex code are generated by compiling the Plutus/Haskell code, together with the redeemer they are the basis for the transaction to be signed.
Since our goal is to provide user friendly tooling for the Cardano development ecosystem Kuber should provide a minimal amount of basis functionality that helps the developer.
For Plutus/Haskell developers it would be a terrible experience to have to leave their IDE in order to compile their code. This is the reason why we wanted to provide inline code compilation in the Kuber IDE for a better user experience to help the adoption by developers of the Cardano platform.
The challenges our team had to overcome were pretty though since there was not many reference material available for them to start from. The Plutus playground of IOHK provides an inline code compiler but our team didn’t have access to information or knowledge to implement it. Even after asking for it, it turned out there was no code or documentation available for us to start from.
So our team was up for a challenge, one that our team likes. It was not an easy task because of the lack of reference documentation and open source code but our developers as usual did a fantastic job and were able to build a server side api on top of the Haskell compiler that is able to compile the inline Plutus/Haskell code provided by the developer in the Kuber IDE.
Now the next challenge we are up to is to make the server side solution for the Plutus/Haskell compiler scalable.
Get involved with the development of Kuber, visit our Kuber Discord channel.