We admit it has been quite a while since we posted anything, but that doesn't mean we haven't kept busy in the meantime. We've made good progress with development by utilizing open-source community projects that have emerged in recent months. Read about the upcoming changes associated with the Vasil hardfork and how they bring us closer to our beta launch on testnet.
In our last blog post from the start of this year, we mentioned that we intended to use the PAB (Plutus Application Backend), a component built by IOHK, to run our application (i.e. keep it in sync with the blockchain and build / submit transactions for our users). However, the development of the PAB has been very slow and also its usage is not very developer-friendly in our opinion. We felt that this was keeping us back and therefore we started looking for alternatives among many open-source community projects that have grown in the meantime. We decided that this was the best way for our project to proceed, so we completely reorganized our application architecture. Our new main application components are ogmios (a lightway bridge which communicates with the Cardano blockchain and syncs its state with the application) and lucid (a library for building and submitting transactions, based on the Cardano serialization library). Both are well-known in the development community and also used by many other projects, so we believe we made the right choice.
Another area where we made significant changes are the smart contracts. The main reason behind this is the upcoming Vasil hardfork which brings several important improvements (explained in the next section). But in order to benefit from them, we had to substantially restructure our core smart contract logic.
The Vasil hardfork brings many enhancements to the Cardano blockchain. For us, the most notable ones are the three new CIPs (Cardano Improvement Proposals) that will be implemented.
- CIP31 - This proposal introduces reference inputs which means that a smart contract can read information from a UTXO without spending it. This helps resolve some concurrency issues where multiple users want to access the same UTXO which was previously not possible.
- CIP32 - UTXOs can now also store complete datums (pieces of information) instead of just datum hashes as they do now. Combined with the previous proposal, this enables us to have some common UTXOs which store information about application configuration, accessible on-chain by multiple users at the same time.
- CIP33 - The last proposal brings reference scripts which allow multiple transactions to re-use the same smart contract code on-chain. Until now, every transaction had to include its own script as part of it, increasing its size and fees. We already mentioned in a previous blog post that Cardano has a limit of 16kB size per transaction which makes it very challenging to implement complex smart contract logic. Reference scripts drastically decrease the size of transactions and thus removing most of the constraints from the features that we're building.
We are in the final stages of development for most of our application components. What remains is to tie everything together - connect the user interface with our backend code for building and submitting transactions while continuously syncing the internal application state with the blockchain. Following that, comes internal testing and quality assurance. If everything goes according to plans and there are no delays with the Vasil hardfork, we hope to release the beta version of adadomains on the Cardano testnet at the end of September. This means that all the features will be already available for users to test, but the tokens will not exist on the real Cardano blockchain. After a period of observation and possible optimizations, we aim to launch adadomains on the Cardano mainnet in late autumn.
To get you excited for what's coming, here is a preview of a part of our redesigned dashboard.
See you in the next blog post and as always join our Discord for discussion,
your adadomains team .