본문으로 바로가기

블록체인 애플리케이션 개발 기초

블록체인 앱 개발을 하는데 있어서 기초를 배워보도록 할게요.

우선 배우기 앞서서 개발 환경을 구축해야합니다.

윈도우 기준으로 하겠습니다.

 

1. 이더리움 클라이언트

다양한 클라이언트가 존재하지만 Go Ethereum을 이용 하겠습니다.

설치 하기 앞서서 네트워크 유형에 대해 알아야합니다.

메인넷테스트넷이 있습니다. 이 둘은 제가 첫 페이지에서 용어정리 때 간략히 설명 드렸지만 한번 더 설명해보자면

메인넷은 말 그대로 주요의 망입니다. 즉 실제로 이더리움을 사용하는 네트워크 망인 거죠.

테스트넷은 말 그대로 테스트를 하기 위한 망입니다. 블록체인 앱을 개발할 때 사용 되죠. 메인넷과 같은 구조입니다.

테스트 넷에는 롭튼, 코벤, 린키비 등이 있습니다.

  • 롭튼: 작업 증명 알고리즘 기반 앱 실행 테스트넷(블록 생성=> 체굴 형식)
  • 코벤: 러스트 기반으로 블록 간격이 짧아서 금방 개발 테스트
  • 런키비: 권한 증명 알고리즘 사용 테스트넷 직접 알고리즘을 만듬

 

우선 사설망을 만들어 Go Etheruem을 통해 송금을 해보도록 할게요

사설망: 개발에 필요한 네트워크(사용자가 직접 만듬)

1단계: Go Ethereum의 Geth 설치

https://geth.ethereum.org/downloads/ 에 접속하여 운영체제에 맞는 Geth를 설치합니다.

저는 익스플로어에서는 접속이 안돼서 크롬으로 깔았습니다. 아래 사진처럼 이 부분에서 넘어가지 않으시다면 바로 크롬으로!!

 

 

Geth를 설치합니다!!

설치 완료 하면 geth.exe를 실행 할 파일이 생깁니다.

반드시 환경변수에서 Geth 프로그램이 들어가있는지 확인하세요.

cmd창에서 where geth를 쳐서 경로를 확인하세요

2단계: 사설망에서 Geth 실행 해보기

우선 geth 폴더에 private_net 폴더를 만드세요.

제네시스 블록을 만들어 보겠습니다.

제네시스 블록: 첫 번 째 블록

텍스트 에디터를 통해 아래와 같은 코드를 작성해주세요 !!

위의 코드가 안될 경우 아래 코드로 해주세요.

{
    "config":{
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "256",
    "gasLimit": "3100000",
    "alloc":{
        
    }
}

이렇게 작성을 합니다. genesis.json 파일입니다.

이 코드를 private_net 폴더에 넣습니다.

 

geth를 초기화 합니다. 아래의 명령어를 치세요.

geth --datadir C:\Users\사용자이름\geth\private_net init C:\Users\사용자이름\geth\private_net\genesis.json

사용 자이름은 본인 컴퓨터 환경 이름을 쓰세요 ~~

 

그다음 콘솔을 실행합니다. 커멘드 창에서 아래의 명령어를 쳐주세요

geth --networkid "10" --nodiscover --datadir C:\Users\사용자이름\geth\private_net --rpc --rpcaddr "localhost" --rpcport "8545" --rpccorsdomain "*" --rpcapi "eth, net, web3, personal" --targetgaslimit "20000000" console 2>> C:\Users\사용자이름\geth\private_net\error.log

성공 하셨다면 Welcome to the Geth JavaScript console! 이라고 아래와 같이 출력되면 성공한겁니다.

><< 이표시는 geth 커멘드 창입니다.

그 다음 외부 계정 주소를 만들어야 합니다.

personal.newAccount("비밀번호") 를 실행해줍니다. 실행 결과 주소가 나올겁니다. 외부 계정 주소지요. 비밀번호 잊지 마세요.

총 3개의 계정을 생성해줍니다.

 

외부 계정 주소를 확인하고자 한다면 eth.accounts 를 실행해줍니다.

 

코인 베이스 계정 주소를 확인해봅시다.

코인 베이스 계정: 블록을 생성하려고 채굴 받을 때 보상 받는 계정 주소입니다.

eth.coinbase를 쳐서 확인 가능합니다.

 

변경 가능합니다 . 변경하고 싶을 때는 miner.setEtherbase(eth.accounts[1])를 실행합니다. eth.accounts[1]은 인덱스로 설정해서 0 , 1 , 2 중 아무거나 변경해줍니다. 0 1 2 는 총 3개의 계정을 저희가 만들어서 생긴 인덱스입니다.

 

자!!! 저희가 이제 제네시스 블록을 생성했답니다. 제네시스 블록을 보구싶으시다면 !! eth.getBlock(0) 명령어를 치세요!! 0은 첫 블록입니다. 아래는 결과입니다.

 

이렇게 되면 제네시스 블록생성은 성공한겁니다.

다음 강의에서는 채굴을 하여 송금까지 해보겠씁니다.

감사합니다.

 

 

 

'블록체인' 카테고리의 다른 글

블록체인 앱 개발 기초(채굴/송금)  (0) 2018.08.16
블록체인과 스마트계약 플랫폼(용어 정리)  (0) 2018.08.08
스마트 컨트렉트와 이더리움 이해  (0) 2018.08.08
블록체인  (2) 2018.08.07
용어 정리  (0) 2018.08.04