Geth실행

YU YU·2022년 4월 2일
0

코어 이더리움

목록 보기
9/9

책에서는 엄청 간단하게 나오는데, 생각보다 물밑 작업이 많이 필요하다.
이건 리눅스로 하는 버전이다.

1. go 설치

일단, 컴퓨터에 go가 설치되어있는지 확인해본다.
$ go version
안 깔려 있으면 다음과 같이 설치한다.

$ sudo apt-get update
$ sudo apt-get install golang -y

2. GETH설치

우분투로 들어간다.

$ cd ~
$ sudo apt-get install -y build-essentail libgmp3-dev golang git tree make
$ git clone https://github.com/ethereum/go-ethereum.git
$ cd go-ethereum
$ git checkout refs/tags/v1.5.5
$ make geth

그런데 이러한 에러가 떴다.

알아보니 내 컴퓨터에 깔린 go version이 1.31이어서 1.4이상으로 업데이트를 해주어야만 했다.

간단하게 다음과 같이 하면 go version update가 진행이 된다.

$ git clone https://github.com/udhos/update-golang
$ cd update-golang
$ sudo ./update-golang.sh

나는 안되었다....ㅠㅠ
그래서 해결책을 찾았다.
$ go env를 터미널창에 친다.

여기서 GOROOT라고 된 부분을 복사한다. 나같은 경우는 /usr/lib/go-1.13이다.

그리고 여기에서 linux 용을 다운받는다.
https://go.dev/dl/
그리고 그 다운로드 폴더를 ubuntu로 열고 진행한다. 나는 1.18버전을 받았다.

$ sudo rm -rf /usr/lib/go-1.13
$ sudo tar -C /usr/local -xzf ./go1.18.linux-amd64.tar.gz
$ echo $PATH | grep "/usr/local/go/bin"
$ export PATH=$PATH:/usr/local/go/bin
$ go version

여기서 echo를 하면 다음곽 같은 화면이 나온다.

드디어 1.18버전이 되었다.🤣

$ cd ~
$ cd go-ethereum
$ make geth

또 오류가 나온다... 제발 언제까지...

$ sudo apt-get remove golang-go -y
$ sudo apt-get remove --auto-remove golang-go -y
$ sudo add-apt-repository ppa:gophers/archive
$ sudo apt update
$ sudo apt-get install golang-1.9-go

$ geth version
을 터미널에 치면 다음과 같이 나온다.

  1. $ geth console을 입력하여 콘솔 모드로 들어가자.

이렇게 콘솔 모드로 들어가면 에러 메세지들이 콘솔창에 출력이 되어 명령어 작업을 할 수 없다.

그래서 표준 에러를 /dev/null 디바이스에 연결된 파일로 보내서 화면에는 에러가 출력되지 않도록 한다.
$ exit을 입력하여 빠져나간다.
$ geth console 2 >> /dev/null

root@DESKTOP-GOU39IJ:/mnt/d/download# geth --http --http.port "8545" --http.corsdomain "*" --datadir "private-data" --port "30303" --nodiscover --http.api "db,eth,net,web3" --networkid 15 console

$ geth --dev console

$ eth.accounts
$ eth.blockNumber

eth.accounts는 계좌의 배열을 나타낸다.

$ personal.newAccount("Jay")

입력하면

다음과 같이 알아서 만들어진다;;

이제 계좌주소가 2개가 되었다.

또 만들어준다.
그리고 잔액을 확인하면 0이 나온다.

$ eth.getBalance(eth.laccounts[1])

2. 채굴하기

$ miner.start(1)





eth가 옮겨지지 않았다. 계정을 unlock시켜보자.
안된다. ....비밀번호 까먹음....
처리되지 않은 트랜잭션을 알아보자.
$ eth.pendingTransactions

트랜잭션을 완료하기 위해 다시 마이닝 작업을 수행한다.

$ miner.start() //마이닝 시작
...
$ miner.stop() // 마이닝 종료

그리고 이더가 이렇게 늘었다...

profile
코딩 재밌어요!

0개의 댓글