본문 바로가기

IT/블록체인 Blockchain

[Ethereum] 설치 및 테스트용 사설 네트워크 구성

반응형



오늘은 PC위에 가상 리눅스를 설치하고 이더리움 테스트용 사설 네트워크를 구성하는 방법을 소개 해 보겠습니다.


1. Oracle VM Virtual Machine 프로그램 설치

윈도우 환경에서도 이더리움의 설치 및 테스트가 가능하긴 하지만 설치도 번거롭고 버그가 많다고 합니다.

그래서 리눅스 환경에서 이더리움을 설치하도록 하겠습니다. 별도의 PC나 서버에 리눅스를 설치하고 작업을 하면 좋겠지만, 지금 제가 사용할 수 있는 빈 PC가 없는 관계로 가상 OS를 설치해서 진행하도록 하겠습니다.

VM 프로그램은 이곳에서 다운받아 설치하시면 됩니다.


2. 가상환경에 Ubuntu 리눅스 설치

우분투 리눅스 홈페이지에서 서버용 디스크 이미지 파일을 다운받아서, OS를 설치합니다.

상세한 설명은 다른 블로그나 웹페이지에 많이 나와 있으므로 생략하겠습니다.


3. Ubunt 리눅스 환경에 이더리움 설치

이더리움은 여러가지 클라이언트를 제공합니다.(Peer to peer 프로토콜이므로 서버 프로그램은 존재하지 않죠)

이더리움의 스펙은 "Yellow paper" 에 영어로 정의되어 있고, 이 스펙을 프로그래밍 언어로 구현해 낸 것이 이더리움 클라이언트 프로그램입니다.

현재 이더리움 클라이언트는 구현 언어에 따라서 다양한 종류가 제공 되는데요, 그 중 가장 많이 쓰이는 것은 Go 언어로 구현된 geth 입니다. 따라서 저도 geth를 이용해서 테스트 해 보도록 하겠습니다.

(클라이언트의 종류에 대해서는 다음 링크를 참조 : http://www.ethdocs.org/en/latest/ethereum-clients/choosing-a-client.html )


우분투에 geth 설치는 아주 간단합니다.

(원본 링크 : https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu )

아래 명령어를 순서대로 입력해 주기만 하면 됩니다.


sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install ethereum


4. 이더리움 로컬 사설 테스트넷 설정 (local private testnet)

default로 geth는 퍼블릭 네트워크에 접속을 시도합니다.

하지만 우리는 먼저 로컬 테스트 환경을 구성하고 이런 저런 시도를 해 볼 계획이므로, 로컬 환경에 테스트넷을 구성해 보겠습니다. (원본 링크 : http://www.ethdocs.org/en/latest/network/test-networks.html#setting-up-a-local-private-testnet )


먼저 제네시스 파일을 생성합니다.

블럭체인의 첫 블럭을 제네시스 블럭이라고 하는데요, 그 첫 블럭을 생성하기 위한 파일입니다.

다음과 같은 내용으로 파일을 vi 등으로 생성합니다.


파일명 : CustomGenesis.json


{
    "nonce": "0x0000000000000042",     "timestamp": "0x0",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "0x0",     "gasLimit": "0x8000000",     "difficulty": "0x400",
    "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "coinbase": "0x3333333333333333333333333333333333333333",     "alloc": {     }
}


제네시스 파일이 생성되었으면 geth를 콘솔 모드로 실행 시켜 봅니다.


geth --identity "MyNodeName" --genesis /path/to/CustomGenesis.json --rpc --rpcport "8080" --rpccorsdomain "*" --datadir "/path/to/TestChain" --port "30303" --nodiscover --rpcapi "db,eth,net,web3" --networkid 1999 console


"MyNodeName" 은 원하는 노드 이름으로 수정하시고, 제네시스 파일 및 데이터 디렉토리도 각각 본인의 환경에 맞게 수정해 주셔야 합니다.


어카운트 생성 및 마이닝 테스트는 다음 포스팅에서 계속 하도록 하겠습니다.

감사합니다.

반응형
  • etherfac 2016.07.23 11:35

    제게 참 유용한 정보내요^^*
    진도 언제 더 나아가나요?ㅎ

  • ㄴㅇㄹㅇㄴㄹㄴㅇㄹㄴㅇㄹㄴㅇㄹ 2016.08.23 01:02

    잘 읽었습니다. 그런데 저는 sudo apt-get install ethereum을 하니 "Unable to locate pachage ehtereum" 이라면서 설치가 안됩니다만 ... 왜그런지 아시나요?

    • 상크스 2016.08.29 08:40 신고

      혹시 그 위 단계를 정상적으로 진행 하셨나요? repository에 추가하는 단계가 정상적으로 진행이 되었으면 에러가 안 나야 정상인데요..

  • 김보균 2017.09.20 09:10

    안녕하세요? :)
    저는 설치중에 에러가 나는데 다른 환경에서 테스트할때는 정상적으로 설치되었는데... 이번 환경에서는
    sudo add-apt-repository -y ppa:ethereum/ethereum 입력하면
    cannot add ppa: 'ppa:~ethereum/ubuntu/etherum'
    Error: '~ethereum' user or team does not exist.
    라고 에러가 뜨는데 혹시 해결 방법 아시나요..ㅎ
    위 명령어는 가상머신에서 실행중이며
    가상머신에서 외부 인터넷은 차단된 상태입니다.
    혹시 이것 때문인걸까요..?
    ppa에서 다운받는것도 인터넷이 되어야지 가능하나요..?
    우분투 16.04.3 을 설치했는데
    버젼 때문인건지..?