이더리움에 대해 공부하기 위한 개발 환경 세팅을 진행해보고자 한다.
WSL 환경에서 작업을 진행하려 하므로 윈도우 사용자들은 아래 글을 참고해서 WSL2 를 설치해주길 바란다.
윈도우에 WSL 설치하기)
2022.01.25 - [Node.js/node js] - Node.js 환경설정 (WSL2 설치하기)
< 목차 >
- Go 설치하기
- git clone go-ethereum
- ganache
1. Go 설치하기
오픈소스로 공개되어 있는 Geth를 사용해 이더리움 관련 프로젝트를 진행해보려 한다. Geth란 go-ethereum의 약자로 Go 언어로 만들어진 이더리움 클라이언트 소프트웨어를 뜻한다. 따라서 WSL에서 Go 언어를 설치해주도록 하자.
$ sudo apt update
$ sudo apt install golang
Geth를 실행하기 위해 다음의 내용을 추가로 설치해주자.
$ sudo apt install -y libgmp3-dev tree make build-essential
터미널에 go version 명령어를 입력해 설치된 Go의 버전을 확인해 볼 수 있는데 버전이 너무 낮다면 다음의 명령어를 이용해 업데이트를 진행해주도록 하자. ( 1.4 이상의 버전 필요 )
$ git clone https://github.com/udhos/update-golang
$ cd update-golang
$ sudo ./update-golang.sh
2. git clone go-ethereum
Geth ( Go + Ethereum ) = Go 언어로 개발된 이더리움 클라이언트 소프트웨어
go-ethereum을 clone 받을 디렉토리를 만들고 다음의 명령어로 git clone을 진행해주도록 하자.
$ cd ~
$ mkdir Ethereum
$ cd Ethereum
$ git clone https://github.com/ethereum/go-ethereum
git clone이 완료되었다면 go-ethereum 디렉토리로 들어가서 make geth 명령어를 입력해주면 된다.
$ cd go-ethereum
$ make geth
터미널에 Done building. 이라고 나왔다면 다음의 디렉토리로 이동해서 geth를 실행시켜보도록 하자. 참고로 ./geth 명령어를 사용해 geth를 실행시킬 때는 ./build/bin 디렉토리 안에서 명령어를 입력해줘야만 한다.
$ cd go-ethereum
$ cd ./build/bin
$ # 버전 확인
$ ./geth version
$ # geth 실행 (./build/bin 디렉토리 안에서)
$ ./geth
하지만 geth를 실행하고 싶을 때마다 해당 디렉토리의 경로를 찾는 것은 매우 번거로운 일이다. 환경변수를 설정하여 터미널에서 geth 명령어를 입력하는 것만으로 geth를 실행시킬 수 있도록 하자.
$ # ./build/bin 디렉토리 절대경로 확인
$ pwd
/home/bitkunst/geth/go-ethereum/build/bin
$ vi ~/.bash_profile
$ # 편집
export PATH=$PATH:/home/bitkunst/geth/go-ethereum/build/bin
$ # wq! 저장 후 종료하기
$ source ~/.bash_profile
이제 터미널에서 geth 명령어를 입력해 다음과 같이 geth가 잘 실행되는지 확인해보면 된다.
3. ganache
가나쉬(ganache)를 사용해 로컬에서만 실행되는 이더리움 블록체인 가상 네트워크를 생성할 수 있다. 이더리움 개발 툴이며 주로 테스트 용도로 많이 사용한다.
터미널에 아래의 명령어를 입력해 가나쉬(ganache)를 설치해주자.
$ npm install -g ganache-cli
가나쉬로 생성된 로컬 이더리움 네트워크에는 제약 조건이 있다.
- 채굴 기능 X
- P2P 기능 X
- 블록 / 체인 / Tx 와 관련된 기능만 존재
- 1 tx 당 1개의 블록이 생성된다.
하지만 가나쉬를 사용하면 트랜잭션을 발생시키면서 실시간으로 확인이 가능하기 때문에 개발 단계에서 테스트 용도로써 사용하기에는 적합하다. 다음의 명령어를 사용해 가나쉬를 실행할 수 있다.
$ npx ganache-cli
'Ethereum' 카테고리의 다른 글
Ethereum/이더리움 - private 네트워크 RPC 설정하기 (1) | 2022.07.01 |
---|---|
Ethereum/이더리움 - private 네트워크 (1) | 2022.06.30 |
Ethereum/이더리움 - 메타마스크 연결하기 (5) | 2022.06.29 |
Ethereum/이더리움 - Web3 (0) | 2022.06.29 |
Ethereum/이더리움 - 비트코인 vs 이더리움 (0) | 2022.06.28 |