Linux에서 COSMOS-SDK 쉽게 설치하기

이 글은 프로그래밍 입문한지 2달된 문돌이가 Cosmos-SDK를 쓰려고 고군분투했던 걸 정리하는 내용입니다.

EJ Lee
CAU_CLink
7 min readOct 4, 2018

--

개발 입문한지 얼마 안된 문돌이 입니다. 잘못된 내용 피드백 너무 환영합니다.

Cosmos-SDK는 코스모스 네트워크에서 제공하는 블록체인 개발자들을 위한 Framework입니다. 자세한 내용은 아래 링크를 참고하세요.

https://cosmos.network/docs/sdk/overview.html

0.리눅스 설치

먼저 리눅스를 깝니다. 저는 윈도우 환경 노트북을 사용하기 때문에

VMware로 우분투 16.04를 돌리고 있습니다.

http://recipes4dev.tistory.com/111 참고 하시면 됩니다.

1.기본적인 프로그램 설치

http://youngrok.net/wp/?p=295 참고

리눅스에서 ctrl+alt+t를 해서 터미널을 띄우고, 기본적인 프로그램들을 설치합니다.

저는 vim 에디터를 씁니다. vim과 기본적인 것들을 몇개 설치하겠습니다.

vim : 에디터

git-core : git 저장소 사용

curl : 명령행 기반 웹 요청 도구, dep 설치할때 필요함

mercurial : Git이랑 비슷한 DVCS

$sudo apt-get install vim git-core curl mercurial

치면 알아서 잘 깔립니다.

2–1 Golang 다운로드

다음은 Golang 을 다운 받겠습니다.

cosmos-sdk는 고랭 1.10 이상의 상당히 최신 버전을 요구하기 때문에

$sudo apt-get install golang-go

하시면 안됩니다. 이러면 1.6버전 설치됩니다.

직접 wget을 사용해서 최신버전을 다운받읍시다.

2018년 10월 4일 기준으로 golang 최신버전은 1.11.1버전 입니다.

$wget http://golang.org/dl/go1.11.1.linux-amd64.tar.gz

하면 다운이 되구요

$tar -xzf go1.11.1.linux-amd64.tar.gz

하면 압축이 풀립니다.

하고 $go version이라고 치면 go가 안깔렸다고 나옵니다.

왜냐면 고랭 설치를 안했거든요 설치하러 갑시다.

2–2 Golang 설치

$sudo cp -r go /usr/local 로 Golang을 모든 유저가 사용할 수 있게 합니다.

이게 안되면 $sudo passwd root 해서 root 로그인 가능하게 한 다음에 하시면 됩니다.

저는 Workspace를 $HOME에 work라는 디렉토리를 만들어서 사용할겁니다.

work 안에 bin pkg src 디렉토리 만들어 줍시다.

~/work$ mkdir bin pkg src 하면 생깁니다.

그리고 환경 설정을 해줍시다. 저는 vim을 사용하기 때문에

$ vim ~/.profile 치면 소스 파일이 뜹니다.

그럼 i를 눌러서 편집할 수 있게 바꾼 후.

맨 아랫줄에

export GOPATH=$HOME/work

export GOBIN=$GOPATH/bin

export PATH=$PATH:/usr/local/go/bin:$GOBIN

를 추가하고 esc 키를 누르고 :wq! 엔터하면 소스파일이 저장 되면서 환경설정이 완료됩니다.

여기서 GOPATH에는 본인의 Workspace 주소를 넣으면 됩니다.

예를 들어 내 Workspace가 $HOME에 있고 이름이 Gowork 이면

export GOPATH=$HOME/Gowork이런식으로 넣어주면 됩니다.

이 과정에서 가장 오류가 많이 나기 때문에 주의해서 하셔야 합니다.

그리고 커맨드에 $go version하면 여전히 go가 안깔렸다고 뜹니다.

터미널 껐다 키면 됩니다.

그 뒤에 $go version 하면 go version go1.11.1 linux/amd64라고 나오면 성공한겁니다.

3. dep 설치.

cosmos-sdk는 dep을 사용하기 때문에 dep을 설치해야 합니다.

dep은 의존성 관리 도구입니다.

설치하실때 어설픈 블로그 보지 마시구 https://golang.github.io/dep/docs/installation.html 보시면 됩니다.

$ curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh

하면 dep이 깔리구요. $dep version 하면

요런식으로 뜨면 성공한거구 설치가 안되었다고 나오면 $vim ~/.profile 에서 GOBIN 체크해보세요.

$sudo apt-get update도 해보고 터미널도 껐다 켜보세요.

4. Cosmos-SDK 설치

https://cosmos.network/docs/getting-started/installation.html#install-go 참고

이제 SDK를 깔아 보겠습니다.

일단 내 GOPATH src 폴더 안에 (저의 경우에는 $HOME/work/src)

$ mkdir github.com/cosmos 해서 폴더를 하나 만들어 주세요

$ cd github.com/cosmos 해서 만든 폴더에 들어간 후에

$ git clone https://github.com/cosmos/cosmos-sdk

해줍니다. 그럼 지가 클론해옵니다.

$ cd cosmos-sdk 해서 만든 폴더 안에 들어간 다음에

$ git checkout master 합니다.

Branch master set up to track remote branch mater form origin.

Switched to a new branch ‘master’

라고 나오면 성공한 겁니다.

그담에

/work/src/github.com/cosmos/cosmos-sdk$ make get_tools

/work/src/github.com/cosmos/cosmos-sdk$ make get_vendor_deps

/work/src/github.com/cosmos/cosmos-sdk$ make install

을 순서대로 해 주세요

이 과정에서 에러나는 경우는 대부분 dep이나 GOPATH문제이기 때문에

dep이 잘 깔렸는지, vim ~/.profile의 환경변수를 잘 설정했는지 확인하세요.

잘 설치 된거 같으면

$gaiad version

$gaiacli version 으로 확인해주세요

다음과 같은 결과가 나왔으면, 축하드립니다.

성공적으로 cosmos-sdk를 설치하신 겁니다.

cosmos-sdk를 설치하면 tendermint도 설치되기 때문에 따로 tendermint를 설치할 필요가 없습니다.

다음 글에서는 10월 4일 코스모스 Core Dev Joon의 강의를 바탕으로 SDK를 이용해서 nameservice를 할 수 있는 local zone을 만들어 보도록 하겠습니다.

Special thanks to Thunnini

--

--

EJ Lee
CAU_CLink

Chung-Ang Univ, C-Link Research team, Interested in Cryptofinance