«If you are not embarrassed by the first version of your product, you’ve launched too late», Reid Hoffman, the founder of LinkedIn said. The team of Cardano developers pursued the aim to deliver the product on time, but first make sure its quality is worth recognition. That's why they focused a lot of effort to attract heavyweight expertise in order to check Plutus' workability.
If you got acquainted with Cardano's roadmap, you probably know that now the team is in a transitional stage and getting over to the Goguen epoch when smart contracts should be released. That will enable software development agencies to use Cardano platform for decentralized app development. The mission of MetaLamp was to check how Plutus smart contracts behave in real projects.
«A smart contract is an application that constructs transactions and sends them to the blockchain according to definite rules. These rules cannot be violated by any blockchain user, they act like a contract in the traditional banking sector. The Plutus platform allows you to write smart contracts on the Cardano blockchain, which uses the UTXO model for ledger, which distinguishes it from other blockchains that have functionality for developing smart contracts», comments Stanislav Zhdanovich.
In this journey towards deployment of Alonzo on the mainnet and the start of smart contracts on Cardano, the IOHK engineers wanted to feel assured that the next hard fork would match their high standards.
To complete the quality assurance tasks at a top level, the MetaLamp team members had to dive into the project and meticulously learn the required information.
«We were given time to study the documentation and lectures of the Plutus Pioneer Program before we started writing smart contracts, '' shares Olga Klimenko, the MetaLamp blockchain developer. - «It was a bit difficult to understand, but the lectures helped a lot to "touch the code with your hands". We could run it and see the result, make some changes of our own and see what happens». Furthermore, Olga was backed by her participation in testing Alonzo Purple.«This experience tangibly helped me», she says. «This is a hard fork that includes smart contracts in the Cardano testnet. Testing made it possible to see in what form UTXOs are stored, how to use them in a transaction, and how to perform validation».
«The only drawback of the program is that IOG is now actively rolling out new features and updates, sometimes even changing the main API of some functions, that's why lectures can quickly become outdated. But the authors of the program are trying to keep it updated. By the moment, three versions of these lectures have already been published», Kirill Elizarov notes.
One of the first obstacles the MetaLamp engineers faced was the lack of documentation to sort out some things.
They worked in such a format when there were constant calls, questions about what challenges they faced, there was no such thing during the regular development process. There was a lot of support from the core internal IOHK team. «We directly communicated with IOHK leaders, their operating officer and education director. It was super! Lars was very responsive and helpful», Darya Trifonova shares her impressions. (Lars Brünjes - education director at IOHK,
PhD in pure mathematics, passionate about functional programming in general and Haskell in particular.)
The special community in Discord, where help can be asked, was very supportive for novice developers of smart contracts too. «But sometimes we had to look at the source code of Plutus and figure it out ourselves,» says Olga Klimenko. She notes that fundamental preparation is a rewarding approach in any domain, and blockchain isn't an exception. If you try to write smart contracts right away, it's almost impossible. But if you start with studying the theory (what it is and how it works), then get over to the specific blockchain (in our case, Cardano), after that try to conduct simple transactions, and finally write smart contracts, then it becomes easier.
«In some cases learning the existing solutions in Ethereum served as a hint in a development process», says Stanislav Zhdanovich, blockchain developer at MetaLamp.
During the period of MetaLamp participation in the program, IOHK did not have a testnet, which supported smart contracts.That also added some difficulties to the process.
«We only worked with the simulation, and when the testnet appeared, it turned out that it did not support many features, for example, PAB with wallets, state machines, etc. And the code that we successfully ran in the simulation would not necessarily work in a real network», says Olga, blockchain engineer at MetaLamp. «It was difficult when we had to look for workarounds to make the contract work in the testnet, if some bugs did not allow it. We left reviews and talked with the Plutus developers and other teams who participated in the testing contracts program in order to discuss ways to fix or work around the errors».
Failures are the stepping-stones to success, as the proverb goes. And working on the project, MetaLamp got solid experience with Cardano tools. The profound expertise of our teammates was appreciated by IOHK engineers, and we were invited to take part as supervisors in the Cardano hackathon, based on the Plutus language.
At Cardano Summit our developers helped participants write a defi application.