본문 바로가기

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


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

감사합니다.

반응형