Skip to content

Latest commit

 

History

History
70 lines (57 loc) · 2.99 KB

00-intro.md

File metadata and controls

70 lines (57 loc) · 2.99 KB
order
0

Getting Started

In this tutorial, you will build a functional Cosmos SDK application and, in the process, learn the basic concepts and structures of the SDK. The example will showcase how quickly and easily you can build your own blockchain from scratch on top of the Cosmos SDK.

By the end of this tutorial you will have a functional nameservice application, a mapping of strings to other strings (map[string]string). This is similar to Namecoin, ENS, or Handshake, which all model the traditional DNS systems (map[domain]zonefile). Users will be able to buy unused names, or sell/trade their name.

All of the final source code for this tutorial project is in this directory (and compiles). However, it is best to follow along manually and try building the project yourself!

Requirements

For this tutorial we will be using Starport v0.13.1, an easy to use tool for building blockchains. To install starport into /usr/local/bin, run the following command:

curl https://get.starport.network/starport@v0.13.1! | bash

You can also use Starport v0.13.1 on the web in a browser-based IDE. Learn more about other ways to install Starport.

Tutorial

Through the course of this tutorial you will create the following files that make up your application:

./nameservice
├── Makefile
├── Makefile.ledger
├── app.go
├── cmd
│   ├── nameservicecli
│   │   └── main.go
│   └── nameserviced
│       └── main.go
├── go.mod
├── go.sum
└── x
    └── nameservice
        ├── alias.go
        ├── client
        │   ├── cli
        │   │   ├── query.go
        │   │   └── tx.go
        │   └── rest
        │       ├── query.go
        │       ├── rest.go
        │       └── tx.go
        ├── genesis.go
        ├── handler.go
        ├── keeper
        │   ├── keeper.go
        │   └── querier.go
        ├── types
        │   ├── codec.go
        │   ├── errors.go
        │   ├── expected_keepers.go
        │   ├── key.go
        │   ├── msgs.go
        │   ├── querier.go
        │   └── types.go
        └── module.go

Follow along! The first step describes the design of your application.