티스토리 뷰

Geth

Linux에 GoLang, Geth 설치

ljy98 2022. 6. 27. 14:12

1. GoLang

2. Geth (go-ethereum)

3. Linux에 GoLang 설치

4. Linux에 Geth 설치


1. GoLang

[그림 1] Golang

Go는 2009년 구글에서 일하는 로버트 그리즈머, 롭 파이크, 켄 톰프슨이 개발한 프로그래밍 언어이다.

 

Go는 정적 타입 컴파일 언어의 효율성과 동적 언어처럼 쉬운 프로그래밍을 할 수 있도록 하는 것을 목표로 한다.

 

Go는 가비지 컬렉션(Garbage Collection) 기능이 있고, 병행성(concurrent)을 지원하는 컴파일 언어이다. 구문이 C와 비슷하지만 메모리 보안, 가비지 컬렉션, 구조 타이핑, CSP 스타일 병행성을 제공한다.

 

이 언어는 golang.org 이라는 도메인 이름 때문에 종종 고랭(Golang)으로도 호칭되지만 정확한 명칭은 Go이다.

 

 

2. Geth (go-ethereum)

[그림 2] Geth

Geth는 이더리움재단(Ethereum Foundation)이 제공하는 공식 클라이언트 소프트웨어이다.

 

Geth는 "go-ethererum"의 약자로 프로그래밍 언어인 고(Go)에서 구현된 전체 Ethernet 노드를 실행하기 위한 다목적 명령 줄 도구이다. 명령행 부속 명령 및 옵션, Json-rpc 서버 및 대화식 콘솔의 3가지 인터페이스를 제공한다.

 

Geth를 처음 시작하면 네트워크 내의 다른 이더리움 클라이언트(노드)에 연결하는 작업을 먼저 시작하고 블록체인의 전체 사본을 내려받게 된다. Geth는 블록체인의 복사본을 최신 상태로 유지하기 위해 끊임없이 다른 노드와 통신한다. 또한 블록을 채굴하고, 블록체인에 트랜잭션을 추가하고 블록의 트랜잭션을 검증하며 트랜잭션을 실행할 수도 있다. 

 

또한 RPC를 통해 상호작용할 수 있는 API를 노출하여 서버 역할을 하기도 한다.

 

블록체인에 연결할 수 있는 자바스크립트 클라이언트(geth console)도 있다. 이는 이더리움 블록체인의 노드 역할을 하며 사용자가 이더(Ether)를 마이닝하고 이더리움 기반의 가상머신에서 실행되는 소프트웨어인 이더리움 가상 머신(EVM)을 만들 수 있는 프로그램이다.

 

 

3. Linux에 GoLang 설치

$ sudo apt-get update
$ sudo apt-get install golang -y
$ wget https://dl.google.com/go/go1.18.3.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz

위의 명령어를 통해 Go 언어를 설치할 수 있다. 

 

wget은 "web get"의 약자로 웹 상의 파일을 다운로드 받을 때 사용하는 명령어이다.

tar는 "Tape ARchiver"의 약자로 여러 개의 파일을 하나로 묶거나 풀 때 사용하는 명령어이다.

 

wget 명령어를 사용하지 않고 아래 주소에 들어가서 직접 해당 파일을 다운로드 받아서 압축을 풀어도 된다.

https://dl.google.com/go/go1.18.3.linux-amd64.tar.gz

 

 

압축 해제까지 완료했다면, 아래 명령어로 환경 변수를 설정한다.

$ echo "export PATH=$PATH:/home/jenny/go-ethereum/build/bin" >> ~/.profile
$ source ~/.profile

환경 변수를 설정하면 ~/go-ethereum/build/bin 디렉토리가 아닌 다른 곳에서도 geth를 실행할 수 있다.

 

[그림 3] go 설치 확인

go version 명령어를 실행하여 go가 제대로 설치되었는지 확인한다.

 

[그림 4] go 환경변수 확인

go env 명령어로 환경 변수가 잘 설정되었는지 확인할 수 있다.

 

 

4. Linux에 Geth 설치

$ sudo apt install -y build-essential libgmp3-dev tree make
$ git clone https://github.com/ethereum/go-ethereum
$ cd go-ethereum
$ make geth

build-essential은 make, gcc, g++ 등 빌드에 필요한 도구들이 있는 패키지이다. 

libgmp3-devMultiprecision arithmetic library developers tools로 정밀한 수학 계산에 사용되는 개발자 도구 패키지이다.

tree는 단어 그대로 디렉토리의 tree 구조를 나타낼 수 있는 패키지이다.

make는 빌드 작업을 하기 위해 필요한 패키지이다.

 

필요한 패키지들을 설치한 후에는 git clone으로 아래 주소에서 Geth에 대한 코드를 다운로드 받는다.

 

https://github.com/ethereum/go-ethereum

 

GitHub - ethereum/go-ethereum: Official Go implementation of the Ethereum protocol

Official Go implementation of the Ethereum protocol - GitHub - ethereum/go-ethereum: Official Go implementation of the Ethereum protocol

github.com

 

git clone 명령어를 실행한 디렉토리에 go-ethereum 이라는 하위 디렉토리가 생성될 것이다.

 

[그림 5] geth version

go-ethereum/build/bin 디렉토리에 들어와서 ./geth version 명령어를 실행하면 Geth 버전을 확인할 수 있다.

 

앞서 환경 변수를 설정했기 때문에 다른 디렉토리 경로에서 geth version을 실행해도 마찬가지로 Geth 버전 확인이 가능하다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함