cosmos/cosmos-sdk

Name: cosmos-sdk

Owner: COSMOS

Description: Secure Blockchain Framework

Created: 2016-02-06 07:15:53.0

Updated: 2018-05-24 06:02:49.0

Pushed: 2018-05-24 15:41:33.0

Homepage: https://tendermint.com

Size: 6435

Language: Go

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Cosmos SDK

banner

version API Reference Rocket.Chat license LoC Go Report Card

Branch | Tests | Coverage ———-|——-|——— develop | CircleCI | codecov master | CircleCI | codecov

WARNING: the libraries are still undergoing breaking changes as we get better ideas and start building out the Apps.

Note: Requires Go 1.9+

Overview

The Cosmos-SDK is a platform for building multi-asset Proof-of-Stake (PoS) blockchains, like the Cosmos Hub. It is both a library for building and securely interacting with blockchain applications.

The goal of the Cosmos-SDK is to allow developers to easily create custom interoperable blockchain applications within the Cosmos Network without having to recreate common blockchain functionality, thus abstracting away the complexities of building a Tendermint ABCI application. We envision the SDK as the npm-like framework to build secure blockchain applications on top of Tendermint.

In terms of its design, the SDK optimizes flexibility and security. The framework is designed around a modular execution stack which allows applications to mix and match elements as desired. In addition, all modules are sandboxed for greater application security.

It is based on two major principles:

Note: For now the Cosmos-SDK only exists in Golang, which means that developers can only develop SDK modules in Golang. In the future, we expect that the SDK will be implemented in other programming languages. Funding opportunities supported by the Tendermint team may be available eventually.

Application architecture
Modules

The Cosmos-SDK has all the necessary pre-built modules to add functionality on top of a BaseApp, which is the template to build a blockchain dApp in Cosmos. In this context, a module is a fundamental unit in the Cosmos-SDK. Each module is an extension of the BaseApp functionalities that defines transactions, handles application state and the state transition logic. Each module also contains handlers for messages and transactions, as well as REST and CLI for secure user interactions.

Some of the most important modules already integrated in the SDK are:

Directories

The key directories of the SDK are:

Prerequisites
Getting Started

See the documentation.

Disambiguation

This Cosmos-SDK project is not related to the React-Cosmos project (yet). Many thanks to Evan Coury and Ovidiu (@skidding) for this Github organization name. As per our agreement, this disambiguation notice will stay here.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.