0g-chain/docs/education/getting_started.md
2021-12-06 15:27:59 -08:00

3.9 KiB

Getting Started For Developers

In order for developers to start building modules, they must install the following tools:

  1. Go 1.6 or higher
  2. Docker

Go Programming Language

Go is a language developed and used by some of the largest companies in the world for server/networking applications. Go is used to develop modules and provides optimum performance and flexibility to blockchain developers.

A Tour Of Go

Docker

Docker is a software containerization tool used to spin up and shut down Kava nodes and allows software portability between different operating systems & environments. It is also used to spin up multiple Kava nodes locally and handles basic networking between them with docker compose.

Docker Overview

Set Up bash_profile

Once Go & Docker are installed, update your bash_profile to include the go path and an alias command for one of the tools we will use to handle Kava node interactions

export PATH=/usr/local/go/bin:$PATH
export PATH=$HOME/go/bin:$PATH
export GOPATH=$HOME/go
export GO111MODULE=on

alias dkvcli='docker exec -it generated_kavanode_1 kvcli'

Make sure to source your bash profile or restart it for the changes to take place.

Getting The Kava Repository & Development Tools

Once you have the core tools installed & set up, its now time to get the following repositories from Github:

  • kava
    • Main Kava Repo that holds all modules
  • kvtool
    • Dev tools to interact with a Kava node

Set Up a Local Blockchain

Now that you have set up all the tools & repositories in your local machine its finally time to set up a local blockchain.

  • Open a terminal and change into the kvtool directory.
  • Ensure Docker is running.
  • Run make install in your terminal which will install kvtool in your machine.
  • Ensure Docker is running.
  • Run kvtool testnet bootstrap this command will build against the master branch from the kava project, initialize the Docker containers and finally starts a local chain.

Now that you have a local chain running, you can start utilizing the dkvcli that we set up an alias for. If for whatever reason dkvcli doesn't work, you can try the following:

  • Open a terminal and change into the kvtool directory.
  • In the kvtool directory there should be a directory named full_configs change into it.
  • Once at full_configs directory change into generated directory.
  • Once you are at generated run the following command docker-compose exec kavanode bash.

This should open up a bash terminal inside a docker container that will give you access to the kvcli command line interface. You should see something similar to the snippet below after typing kvcli help:

bash-5.0# kvcli
Command line interface for interacting with kvd

Usage:
  kvcli [command]

Available Commands:
  status      Query remote node for status
  config      Create or query an application CLI configuration file
  query       Querying subcommands
  tx          Transactions subcommands

  rest-server Start LCD (light-client daemon), a local REST server

  keys        Add or view local private keys

  version     Print the app version
  help        Help about any command

Flags:
      --chain-id string   Chain ID of tendermint node
  -e, --encoding string   Binary encoding (hex|b64|btc) (default "hex")
  -h, --help              help for kvcli
      --home string       directory for config and data (default "/root/.kvcli")
  -o, --output string     Output format (text|json) (default "text")
      --trace             print out full stack trace on errors

Use "kvcli [command] --help" for more information about a command.