geth ( go - ethereum ) 

프라이빗 블록체인 멀티노드 구성

 

            

 

 

 

 

go언어를 기반으로 한 ethereum 블록체인인 geth를 구축하겠습니다.

 

제가 공모전에서 사용한 OS는 (Ubuntu 16.04 / MAC _ high sierra 10.13.5 ) 이고

 

현재 구축하면서 사용할 OS는 Virtualbox에서 돌리는 Ubuntu 16.04 입니다.

 

 

 

 

 

빠르게 본론으로 들어가겠습니다

 

 

 

 

 

1. geth설치

 

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

        - 이 링크로 접속하여 소스코드를 다운받아 압축파일을 원하는 위치에 풀어줍니다.

       

 

     2) git clone https://github.com/ethereum/go-ethereum.git

- 혹은 터미널 창에 이 명령어를 통해 geth를 다운받습니다.

        

          * home 디렉토리 ( cd ~/ ) 에 다운받는것을 권장드립니다.

 

        * 혹시 git이 깔려 있지 않다면 sudo apt install git 명령어를 통해 설치가 가능합니다.

        * 또한 에러 발생 시, sudo apt-get update를 통해 업데이트를 하시면 될겁니다.

 

 

 

 

 

 

 

 

 

 

 

 

2. go언어 설치 및 환경변수 설정

 

     1) wget https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz

        - 터미널에 입력하여 go 1.10.1 압축파일을 깔아줍니다 ( linux버전 입니다. )

 

       * 1.9.2 버전을 깔았었는데 나중에 알고보니 에러가 떠서 버전을 바꿉니다.

 

 

 

 

 

     2) sudo tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz 

     - 터미널에 입력해 압축파일을 /usr/local에 풀어줍니다.

      * sudo는 관리자 권한이라고 보시면 됩니다.        

      * 처음 실행시, 패스워드를 입력해라 하는데

        이전 포스트에서 설정한 패스워드를 입력 하시면 됩니다.

 

 

 

 

 

     3) sudo nano /etc/profile 

       - 터미널에 입력해 환경변수 설정을 위해 /etc/profile에 들어갑니다.

          * 꼭 sudo를 적어 관리자권한으로 접근을 해야 합니다.

 

 

 

 

 

 

     4) 제일 아랫줄에 

        export PATH=$PATH:/usr/local/go/bin            // go 경로 설정

        위 명령어를 입력해줍니다.

 

        그후 ctrl + x , y , 엔터키를 차례로 눌러 저장을 합니다.

 

      

 

 

 

 

 

     5) go version을 터미널에 입력해 버전 확인을 합니다.

        * 만약 go를 깔아라는 에러 메세지가 뜬다면

          터미널에 바로 5)번의 명령어(export PATH ~~ )를 적어주시면 됩니다.

 

 

 

     1.10.1 버전의 go가 깔린것을 확인할 수 있습니다.

    

 

 

 

 

    

 

 

 

 

3. go-ethereum 설치 및 환경구축

 

 

 

     1) cd go-ethereum 

         - go-ethereum으로 이동합니다.

 

 

 

 

 

 

     2) make geth

         - 본격적인 geth 설치를 합니다.

         * 그 전에 먼저 sudo apt-get install make를 통해 make를 깔아줍시다 

         * 오류가 뜬다면 gcc 문제 일 수도 있습니다.

            sudo apt-get install gcc 를 통해 설치를 해주시면 됩니다.

 

 

 

오류없이 진행 된다면 위와같은 창들이 뜨는것을 보실 수가 있습니다.

 

 

 

 

 

 

     3) 위 터미널 창의 마지막 줄에 보이시는 

        /home/ubuntu/go-ethereum/build/bin/ 경로로 이동합니다.

       (cd /home/ubuntu/go-ethereum/build/bin)

        * 다를수도 있습니다.

 

       ./geth version 을 통해 설치된 geth 버전을 확인합니다.

 

 

 

 

 

 

 

 

     5) 블록체인 데이터를 저장할 디렉토리를 만듭니다.

        mkdir private-blockchain

        *private-blockchain 말고 자신이 원하는 디렉토리 명을 하시면 됩니다.

 

 

 

 

 

     6) 제네시스 파일을 생성해 줍니다.   

         nano genesis.json                

        (저는 vim 편집기를 사용해 vim genesis.json을 했습니다.)

 

        * 글씨 1자도 틀리지않게 조심해서 작성해 주세요

{ "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "difficulty": "200000000", "gasLimit": "2100000", "alloc": { } }

 

 

 

 

 

4. go-ethereum 설치 및 환경구축

 

     1) ./geth --datadir "private-blockchain" --networkid 15 --dev console

        위 명령어를 통해 geth private 블록체인 단일노드가 생성되었습니다.

 

 

 

 

 

 

 

뒤의 포스팅에는 geth 명령어와 멀티노드의 구성을 포스팅 하겠습니다.

 

 

 

 

 

감사합니다.

 

+ Recent posts