geth 설치하기

in blockchain •  4 years ago  (edited)

개인적으로 블록체인으로 공부하면서 배운 내용을 정리하기 위한 글입니다.
부족한 부분이 많아서 부끄럽네요. 틀린 부분이 있으면 댓글로 지적해주시기 바랍니다.

1. Geth란?

이더리움 공식 홈페이지(www.ethereum.org)에서는 다음과 같이 이더리움을 정의하고 있습니다.

Ethereuim is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.

이더리움이란 스마트 계약을 실행할 수 있는 플랫폼입니다. go, c++, python 등 다양한 언어로 이더리움을 구동할 수 있는 클라이언트가 개발되고 있으며 현재 가장 많이 사용되는 클라이언트가 go 언어로 개발된 go-ethereum(geth)입니다.

2. Geth 설치하기

Geth는 윈도우즈, 리눅스, 맥 등 다양한 운영체제에서 설치할 수 있습니다. 저의 개발환경은 macos이고 주로 CLI환경을 사용할 예정입니다. 이더리움의 소스코드는 github에 공개되어 있기 때문에 소스코드를 직접 다운받고 컴파일하면서 다음 과정을 진행하겠습니다.
이더리움의 소스코드는 모두 github(https://github.com/ethereum)에 업로드되어 있습니다.

2.1 Homebrew

github에 있는 자료를 다운받기 위해 먼저 터미널을 실행하고 git을 설치해야 합니다. git을 설치하기 위해 리눅스 사용자라면 주로 apt-get을 사용하여 git을 설치하겠죠. mac에서도 apt-get과 같은 패키지 관리자가 있습니다. 이름은 homebrew이며 다음의 명령어를 실행하여 설치할 수 있습니다.

image.png

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.2 go-lang

geth를 다운받기 전에 geth를 컴파일하기 위해 go언어를 설치해야 합니다.
설치방법은 https://golang.org/doc/install 에 자세히 나와 있습니다.

> wget https://golang.org/dl/go1.14.6.darwin-amd64.tar.gz
> tar -C /usr/local -xzf go1.14.6.darwin-amd64.tar.gz

먼저 파일을 받은 후 압축을 풀어줍니다. 그리고 환경변수를 설정해 주겠습니다.
저는 zsh를 사용하므로 .zshrc파일에 환경변수를 설정하겠습니다.

> vim ~/.zshrc

vim으로 홈디렉토리의 .zshrc파일을 열고 파일 마지막에 다음의 내용을 추가해줍니다.

export PATH=$PATH:/usr/local/go/bin
export GOPATH='Users/thkim/go'

마지막으로 변경된 내용을 적용해주겠습니다.

> source ~/.zshrc

설치된 go버전을 확인해봅시다.

> go version
go version go1.14.6 darwin/amd64

2.3 geth

이제 git을 사용하여 geth의 소스코드를 다운받아 보겠습니다.

❯ cd ~/go
❯ mkdir -p src/github.com/ && cd src/github.com
❯ git clone https://github.com/ethereum/go-ethereum

GOPATH로 지정한 ~/go 디렉토리 안에 src/github.com 디렉토리를 생성하고 geth 소스코드를 git을 이용하여 다운로드 합니다.

❯ cd go-ethereum
❯ make geth

Makefile에 저장된 geth를 컴파일해주겠습니다.

컴파일을 위해 make, gcc, g++ 등이 필요할 수 있습니다. compile에러가 나면 어떤게 부족한지 확인 후 설치해주시기 바랍니다.

컴파일이 완료되면 go-ethereum/build/bin 디렉토리 안에 geth라는 파일이 생성된 것을 확인할 수 있습니다. 이제 이 geth명령어를 어디서든 사용할 수 있도록 환경변수를 지정해줍니다.
(지정하지 않으면 이 디렉토리에서 ./geth 형태로 사용할 수 있습니다.)

저는 mac에서 zsh셸을 사용중이므로 다음과 같이 .zshrc파일을 열고 마지막에 다음의 문장을 추가했습니다.

❯ vim ~/.zshrc

export GETHPATH=$GOPATH/src/github.com/go-ethereum
export PATH=$PATH:$GETHPATH/build/bin

❯ source ~/.zshrc

환경변수가 제대로 설정되었는지 보기 위해 홈디렉토리에서 geth의 버전을 확인해보겠습니다.

❯ geth version
Geth
Version: 1.9.12-unstable
Git Commit: 556888c4a971d4fd02be15f09cba7a65c5c0d930
Git Commit Date: 20200303
Architecture: amd64
Protocol Versions: [65 64 63]
Go Version: go1.14.6
Operating System: darwin
GOPATH=/Users/thkim//go
GOROOT=/usr/local/go

위와 비슷한 내용이 출력되면 geth가 제대로 설치된 것입니다. 다음 시간에는 geth의 기본적인 사용 방법에 대해 알아보겠습니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!