Development Diary: 27th June — 5th August

Ardana
Ardana Hub

--

We’re back with another edition of Ardana’s Development Diary, and we’ve got some exciting news to share. In this installment, we’ll be looking at some of the new updates that have gone out over the last two months.

We’ve been working tirelessly on the tools and features of the Ardana platform to bring you the best experience possible.

Developer Diary: 27 Jun — 1 Jul 2022

This week has been a whirlwind of activity and we are finally getting to the point where things really start to come together. We have integrated the Plutarch validators into the offchain code using nix, which was a lot of fun to work with. We decided to move the tests for the off-chain code into CI, and we managed to get them passing with a fairly basic setup. The CTL spec framework is in place, and we can now translate acceptance criteria into code.

The frontend team has made great progress towards trivial examples working in CLI interface, wallet loading from file, and signing without browser integration. Purescript has been updated with a new version of purs-nix, supporting wasm properly, which is also a big step towards usability.

Developer Diary: 4–8 Jul 2022

The price feeder is nearly finished. The spec for the CLI output makes it clear what’s expected. We’re just waiting on some more reviews, and we should be good to go!

In other news, we’ve been doing a lot of work with purs-nix lately. We’ve written documentation, and are working on making sure that the frontend code is compatible with the Nix packages so that we can make use of purs-nix’s comprehensive testing in our builds. We’re still not actually connected to the control layer yet, but the groundwork is being laid. It’ll happen sooner or later.

Developer Diary: 11–15 July 2022

Hello World UI is now connected to the CTL API, which means it can be used for frontend development. We’ve implemented initial integration testing for the frontend and successfully tested it out with a Hello World (of course) interface. Over the past week, we have spent more time investigating why our Cardano node is having difficulty syncing with the network. It turns out a few of the nodes on the network are having issues and aren’t sending us all of their messages, so we’re still looking into that. We also have been working on finalizing our specification for Hello World and setting up an initial roadmap for its development.

In terms of Nix/NixOS, we recently finished refactoring our current dUSD codebase, which should make it easier to add new features to it in the future. Nix/NixOS is now being used internally at Coinbase to run each of our test suites independently, which will allow us to speed up our test suite execution times significantly and improve code quality across the entire project.

Developer Diary: 18–22 July 2022

ClojureScript tests are now run through Nix! This was a long time coming. As we mentioned in an earlier entry, there were some issues with the build system not being flexible enough as we added new dependencies and versions over the past few months. Well, this is the solution to all of that: we’ve been able to move away from the old way of doing things and into a more streamlined setup that relies on Nix for dependency management. It’s still early days, but the setup so far seems promising. The next step is to get browser testing up and running so we can start running tests in a browser environment.

The new command line interface (CLI) work is almost merged! This has been something that’s been in development for some time now, and it’s finally close enough to be done that we think it will be stable soon. The first part of this is going to involve adding some new commands to Flake. Now, with Flake 0.2, you can specify a particular test suite and it’ll automatically figure out what dependencies you need.

Developer Diary: 25–29 July 2022

This week, we focused on finalizing our API tests and getting the CTL retries ready for the testnet. The API tests are basically integration tests that cover how the components of our system interact with each other. For example, in order to achieve transaction finality, when two or more validators produce conflicting signatures for a transaction, we need to be able to identify which one is actually correct and which one is incorrect. To do this, we need to be able to know which signatures belong to which validators. This is where our API comes in. With it, we can test whether our system can correctly identify the validator that produced a particular signature. The API is being developed by the Validator team, so they can use it to implement the backends of their products.

We also finalized some of our API tests and preparation for the deployment of CTL retries in the testnet. The CTL retries are a core part of our architecture that prevent forks from happening during consensus integration testing and also provide protection against attack vectors such as double spends or censorship attacks. One advantage of having this mechanism

Developer Diary: Aug 1–5, 2022

One of the most exciting and important developments in the past few days was figuring out how to make our Hello World app work with multiple types of data storage. We had already planned to integrate with an NFT storage system, but we also need to be able to deal with UTXOs when we deploy it. The plan is to have all our storage backends communicate using the TxT protocol, which is really great because it means that if one type of data storage fails us, it doesn’t mean we lose all our progress on the app.

This week, we were able to finish up the new retry system for CTL transactions. This is a system that will be used by Hello World to automatically try to resubmit failed transactions and ensure that all the data in the network stays consistent — both of these things will be crucial to making the TxT pattern successful in the future. Its current form is based on a Redis-based job queue, which allows us to queue up multiple retries for each transaction. In this way, we will be able to increase the likelihood that a transaction will succeed and help prevent double-spending.

In addition, we’ve been running tests against our live test network, which makes it much easier for us to verify that everything is working correctly before we deploy anything on the main network. Next week, we’re going to focus on setting up Hello World and moving forward with the UTXO discovery mechanism.

About Ardana

Ardana is Cardano’s stablecoin hub, bringing the necessary DeFi primitives needed to bootstrap & maintain any economy to Cardano. Ardana offers an on-chain asset-backed stablecoin and a decentralized stable-asset DEX. The stablecoin is verifiably backed by an excess of on-chain collateral and will enable borrowers to take leverage on their ADA or other supported assets. The DEX is a highly capital-efficient exchange enabling swaps with minimal slippage & fees while providing low-risk yield opportunities to liquidity providers.

Website | Twitter | Discord | Telegram | Whitepaper | Pitch Deck

--

--