Cardano, the platform underpinning ADA, the ninth largest cryptocurrency by market cap, is opening its doors to third-party developers through a new client, written in systems programing language Rust.
“As a project matures and grows, you need to satisfy the demands of different clients,” Charles Hoskinson, CEO at IOHK, the blockchain development company behind Cardano, told Bitcoin Magazine.
IOHK made the announcement on October 1, 2018, exactly one year after it launched Byron, the first version of Cardano’s settlement layer, which was built in the functional programming language Haskell. While Haskell works well for mission-critical code, Rust shines in areas like mobile, where performance matters. Rust was created by Mozilla for Firefox as a replacement for C++.
It is worth noting that Cardano, a proof-of-stake blockchain, is currently centralized with all of its blocks being produced by IOHK. But the project hopes to change that in Q1 2019 when its Shelley release opens up staking pools to users. (Shelley was originally slated for Q2 2018.)
At its core, Cardano’s Rust project is a software development kit for the Cardano blockchain. It has several ingredients needed to interact with the blockchain, including data types like blocks, transactions and addresses, along with protocol functions to query blocks, send transactions and so on. The Github repository describes the project as a toolbox of Cardano functions intended for use by third parties. It also states that a “future” Rust implementation of a Cardano node is in progress.
A command line interface (CLI) wallet is the first project to come out of Cardano’s Rust project. The wallet, still in alpha phase, acts as a toolbox for third-party developers. Here, developers can pick and choose from a library of wallet and node functions. It also lets developers manage multiple wallets, including Cardano’s Daedalus and Icarus wallets. The library is open source, and the plan is for the community to eventually take over the project.
A diversity of clients is good software engineering and a common practice in open source software because it makes it less likely the protocol will be tightly bound to one implementation.
Ethereum, a project that Hoskinson participated in as co-founder and CEO in 2014, also offers a choice of clients — its main ones being go-ethereum (written in Google’s Go programming language) and Parity (written in Rust). IOHK intends for Cardano-Haskell to serve as a reference code for new clients, showcasing how the Cardano protocol ought to work.
Hoskinson hinted that more Cardano node implementations may be on the horizon. “It is really important to see clients written in imperative languages like Javascript, Ruby or Python and really important to see them written in system languages like Rust and C++,” he said.
Eventually, IOHK sees Cardano going head-to-head with projects like EOS and Ethereum. But that won’t happen until a third major third release called Goguen introduces a smart contract layer to the platform. Hoskinson said two smart contract testnets are already up and running, adding that IOHK is “likely” to use its Rust client for testing smart contracts.