본문 바로가기
비트코인

블록체인 애플리케이션 개발 실전 입문 : Solidity를 이용한 이더리움 스마트 계약 구현 (위키북스 해킹 & 보안 시리즈 11) 2장-3

by 자유코딩 2018. 3. 31.
블록체인 애플리케이션 개발 실전 입문 : Solidity를 이용한 이더리움 스마트 계약 구현 (위키북스 해킹 & 보안 시리즈 11) 2장-3

 

테스트 네트워크에서 Geth 기동

 

로컬 테스트넷에서 Geth를 기동하기 위해서는 2가지를 준비해야 한다.

 

ㅁ데이터 디렉터리

 

ㅁGenesis 파일

 

데이터 디렉터리 : 송수신한 블록데이터와 계정 정보를 저장할 디렉터리이다.

 

데이터 디렉터리를 별로도 지정하지 않으면 /~/.ethereum이 데이터 디렉터리가 된다.

 

~ 표시는 리눅스에서 home 디렉토리를 의미합니다.

 

따라서 , 디렉터리 생성을 생략해도 되지만, 디렉터리를 지정하면 서로 다른 블록체인 네트워크 사이에서 공유가 가능하다.

 

ㅇ디렉터리 설정 방법

 

 

디렉토리 생성

 

 

디렉토리 이동

 

pwd명령어는 현재 머물고 있는 디렉토리 이름을 알려줍니다.

 

이렇게 디렉토리를 만들고 나면 Genesis 파일을 만들어야 합니다.

 

Genesis 파일은 블록체인의 Genesis 블록(0번째 블록)의 정보가 저장된 JSON 형식의 텍스트 파일이다.

 

동일한 블록체인 네트워크에 참가하는 노드는 동일한 Genesis 블록으로부터 연결되는 블록체인을 공유합니다.

 

사설 테스트넷을 구축할 경우 0부터 블록체인을 만들게 되므로 Genesis 블록정보가 저장된 Genesis 파일이 필요하다.

 

 

genesis파일을 생성하기 위해서 폴더 권한을 변경합니다.

 

genesis.json

 

 

genesis.json파일 생성

 

 

데이터 디렉터리와 Genesis 파일이 준비 되었다면 Geth 를 초기화합니다.

 

책에서는 /home 디렉토리 아래에 wikibooks가 있지만 저는 사용자 이름이 jswoo 이기때문에

 

/home 디렉토리 아래에 /jswoo가 있습니다.

 

 

tree 명령어를 사용해서 데이터 디렉토리를 확인 할 수 있습니다.

 

이제 Geth를 실행해보도록 하겠습니다.

 

포트번호 30303이 이미 사용중이라는 에러가 나타날수도 있습니다.

 

그럴때는 kill -9 프로세스 번호를 사용해서 30303번호 포트를 사용중인 프로세스를 종료합니다.

댓글