Cosmos SDK, just as the network itself, is written using the Go language. Go has sufficient infrastructure for all operating systems, is open-source and overviewed by Google, and has become one of the most popular programming languages lately.

How Can I do it the Old Way?

Building dApps on top of existing blockchain’s virtual machines have been here for a few years so far. This approach has already delivered dozens of great applications, mostly for entertainment and gaming purposes. Surely, it works with Cosmos Network. For that purpose, Cosmos has a separate blockchain, Ethermint, that supports the Ethereum virtual machine, and is fully integrated into the Cosmos Hub.

Ethermint supports EVM smart contracts written with Solidity or Go, is based on the proof-of-stake consensus instead of Ethereum’s current proof-of-work, and is much faster than Ethereum. It works as a special dApp-oriented Ethereum chain, but takes advantage of the Cosmos governance, Tendermint cross-chain consensus, and the Cosmos’ Inter-Blockchain Communication protocol. It’s great, however, there are drawbacks.

Building old-style dApps on Ethermint is still limiting them to one chain, shared with other dApps, so an EVM dApp can be needlessly slow, even in a blockchain much faster than Ethereum. Solidity is also limiting the app possibilities to the set of methods developed a few years ago, and lacks lots of concepts that have appeared in blockchain development later, such as timestamps.

What are Cosmos Blockchain Applications?

The Cosmos Blockchain Applications are bespoke blockchains, built to be used by one or few apps, that provide such apps with a fast, purposed public or permissioned blockchain. Despite the discreteness, these blockchains are not isolated from the Cosmos infrastructure and have all its advantages out of the box.

During the design stage, the developers can determine, whether the blockchain will be fully private, or private. Cosmos SDK allows building blockchains as bizarre as fully private blockchains that would be supported and maintained by open public, paid with Cosmos’ native ATOM tokens.

How to Build a Blockchain Application with Cosmos SDK?

The Cosmos SDK is a completely modular software suite for the development of any blockchains and blockchain apps. There is a template project, which allows having full blockchain app source ready and spending time only on the application logic itself. The SDK will care about the blocks, consensus, staking, daemons, and everything else for yourself.

Once your code is ready and compiled, the Cosmos SDK will build you a daemon with a console line interface, REST API access and set of utilities for staking, running full nodes or lite clients. There’s no need to set up the network: to connect, a user should launch your daemon and access it like they would access the Cosmos Hub’s Gaia. If you want to allow staking in your blockchain, simply share the corresponding utility and settings and set up the ATOM wallet to pay out to the delegates. Cosmos will care about everything from correct transactions to exchange afterward for you.

Just like any other Cosmos blockchain, your app will be able to roll out updates without the need of a hard fork: the governance mechanism is already implemented. The only difference is that you have the only valid vote if you need to update your private blockchain. In the high-load distributed networks, the Tendermint BFT consensus will make sure that your blockchain stores only valid data, and you don’t have conflicting evidence.