Skip to content

Commit

Permalink
Merge PR cosmos#4426: Anatomy of an SDK App Doc
Browse files Browse the repository at this point in the history
  • Loading branch information
gamarin2 authored and alexanderbez committed Jun 12, 2019
1 parent 58ce605 commit b096357
Show file tree
Hide file tree
Showing 17 changed files with 318 additions and 3 deletions.
2 changes: 2 additions & 0 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ module.exports = {
collapsable: true,
children: [
"/intro/",
"/intro/why-app-specific",
"/intro/sdk-app-architecture",
"/intro/sdk-design",
"/intro/ocap"
]
Expand Down
258 changes: 258 additions & 0 deletions docs/concepts/app-anatomy.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions docs/concepts/baseapp.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ The BaseApp is responsible for managing the context passed into handlers -
it makes the block header available and provides the right stores for `CheckTx`
and `DeliverTx`. BaseApp is completely agnostic to serialization formats.

## Routing

TODO

## Transaction Life Cycle

During the execution of a transaction, it may pass through both `CheckTx` and
Expand Down
3 changes: 3 additions & 0 deletions docs/concepts/encoding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Encoding

TODO
7 changes: 7 additions & 0 deletions docs/concepts/fees-signature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Fees and Signatures

## Signatures

## Fees

## Gas
3 changes: 3 additions & 0 deletions docs/concepts/genesis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Genesis File

TODO
1 change: 1 addition & 0 deletions docs/concepts/handler.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Handlers
3 changes: 3 additions & 0 deletions docs/concepts/interfaces.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Interfaces

TODO
5 changes: 5 additions & 0 deletions docs/concepts/invariants.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Invariants

## What is an invariant

## Invariant Registry
Empty file added docs/concepts/keeper.md
Empty file.
5 changes: 5 additions & 0 deletions docs/concepts/module-interfaces.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Module Interfaces

## CLI

## REST
8 changes: 8 additions & 0 deletions docs/concepts/modules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# SDK Modules

Todo: Intro concept docs on modules

## Application Module Interface

## Module Manager

13 changes: 13 additions & 0 deletions docs/concepts/node.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Node Client (Daemon)

## Pre-Requisite Reading

## `main` function

TODO

## `start` command

TODO

## Light-Client Daemon (LCD)
3 changes: 3 additions & 0 deletions docs/concepts/querier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Queriers

TODO
Empty file added docs/concepts/tx-lifecycle.md
Empty file.
4 changes: 2 additions & 2 deletions docs/intro/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

## What is the SDK?

The [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk) is a framework for building multi-asset public Proof-of-Stake (PoS) blockchains, like the Cosmos Hub, as well as permissioned Proof-Of-Authority (PoA) blockchains. Blockchains built with the Cosmos SDK are generally referred to as **application-specific blockchains**.
The [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk) is an open-source framework for building multi-asset public Proof-of-Stake (PoS) blockchains, like the Cosmos Hub, as well as permissioned Proof-Of-Authority (PoA) blockchains. Blockchains built with the Cosmos SDK are generally referred to as **application-specific blockchains**.

The goal of the Cosmos SDK is to allow developers to easily create custom blockchains from scratch that can natively interoperate with other blockchains. We envision the SDK as the Ruby-on-Rails-like framework to build secure blockchain applications on top of [Tendermint](https://github.com/tendermint/tendermint). SDK-based blockchains are built out of composable modules, most of which are open source and readily available for any developers to use. Anyone can create a module for the Cosmos-SDK, and integrating already-built modules is as simple as importing them into your blockchain application. What's more, the Cosmos SDK is a capabilities-based system, which allows developer to better reason about the security of interactions between modules. For a deeper look at capabilities, jump to [this section](./ocap.md).
The goal of the Cosmos SDK is to allow developers to easily create custom blockchains from scratch that can natively interoperate with other blockchains. We envision the SDK as the npm-like framework to build secure blockchain applications on top of [Tendermint](https://github.com/tendermint/tendermint). SDK-based blockchains are built out of composable modules, most of which are open source and readily available for any developers to use. Anyone can create a module for the Cosmos-SDK, and integrating already-built modules is as simple as importing them into your blockchain application. What's more, the Cosmos SDK is a capabilities-based system, which allows developers to better reason about the security of interactions between modules. For a deeper look at capabilities, jump to [this section](./ocap.md).

## What are Application-Specific Blockchains?

Expand Down
2 changes: 1 addition & 1 deletion docs/intro/why-app-specific.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,5 @@ The fundamental issue here is that the governance of the application and the gov

Clearly, application-specific blockchains are awesome. The Cosmos SDK makes it easier than ever to build them. What are you waiting for?

- Learn more about the [high-level architecture](./sdk-app-architecture) of an SDK application.
- Learn how to build an application-specific blockchain from scratch with the [SDK tutorial](https://cosmos.network/docs/tutorial)
- Learn more about the [high-level architecture](./sdk-app-architecture) of an SDK application.

0 comments on commit b096357

Please sign in to comment.