[BlockChain]이더리움 블록체인_Geth설치하기

1 minute read

이번포스팅은 Geth를 설치하는 과정에 대해 포스팅하겠습니다. 아래와 같이 따라하면 크게 어렵지 않을 것입니다.

<개발환경>

윈도우 VMware를 이용한 OS 환경 — Linux 우분투 16.04 (기본적으로는 OS자체가 Linux이면 좋지만 대다수가 윈도우이기 때문에 Vmware를 사용한다)

Geth

Go Ethereum의 줄임말로 JSON-RPC를 이용하여 이더리움 콘솔에 접속할 수 있는 환경을 말합니다. 기본적으로 Geth를 이용하여 이더리움의 계좌정보 및 이더리움의 상태를 알 수 있죠. 이더리움의 콘솔환경에서 여러 명령어로 확인하고 싶다면 Geth로 확인하면 됩니다.

Geth 다운로드 및 Git 다운로드

$ sudo apt-get install -y build-essentail libgmp3-dev golang git tree
$ git clone https://github.com/ethereum/go-ethereum.git
$ cd go-ethereum
$ git checkout refs/tags/v1.5.5
$ make geth

여기까지 하면 geth를 설치가 완료 됩니다.

Image Alt 텍스트

  • 프라이빗 네트워크(로컬) genesis.json 파일 생성
$ mkdir ~/test_blockchain
$ cd ~/test_blockchain
$ vi genesis.json

프라이빗 네트워크에서 genesis 파일은 직접 vi로 열어서 작성해야 합니다. 이부분이 Genesis json파일을 제공하지 않는 부분이 아쉬웠습니다. (roptsen, rinkeby 테스트 넷, 메인넷은 생성할 필요 없음)

  • genesis.json
{
    nonce: 0x0000000000000042,
    timestamp: 0x0,
    parentHash: 0x0000000000000000000000000000000000000000000000000000000000000000,
    extraData: 0x0,
    gasLimit: 0x80000000,
    difficulty: 0x400,
    mixhash: 0x0000000000000000000000000000000000000000000000000000000000000000,
    coinbase: 0x0000000000000000000000000000000000000000,
    alloc: {}
}

기본적으로 genesis.json파일은 블록체인에 들어가는 기본적인 값들을 지정해줘야합니다.

제네시스블록 초기화

geth — datadir /home/minjae/test_blockchain init /home/minjae/test_blockchain/genesis.json

  • genesis init 및 tree

  • 이더리움 콘솔 접속

geth — networkid 4649 — nodiscover — maxpeers 0 — datadir /home/minjae/test_blockchain/ console 2 » /home/minjae/test_blockchain/geth.log

Image Alt 텍스트

  1. networkid : 네트워크를 식별할 수 있는 Id

  2. nodiscover : 생성자의 노도를 다른 노드에서 검색할 수 없게 하는 옵션

  3. maxpeers : 생성자의 노드에 연결할 수 있는 노드의 수를 지정한다.

  4. datadir : 데이터 디렉터리를 지정한다.

  5. console : 대화형 자바스크립트를 지정.

Image Alt 텍스트

geth에 사용하는 기본적인 개발 명령어

personal.newAccount(“계정의 패스워드”);

return -> 계좌주소 / 이더리움 계좌를 새로 생성합니다.

eth.accounts

return -> 이더의 모든 계좌주소배열 / 현재 이더리움 블록체인에 생성된 모든 계좌를 보여줍니다.

eth.accounts[0]…accounts[n]

return -> n번째 계좌주소 / 이더리움의 n번째 계좌주소를 보여줍니다.

eth.getBalance(계좌주소 or eth.accounts[0])

return -> 이더리움 / 해당 계좌의 이더리움의 잔액을 보여줍니다.

miner.start(1)

return -> true,false / 채굴을 시작. 블록생성

miner.stop(1)

return -> true,false / 채굴 중지

eth.blockNumber / eth.hashrate

return -> 현재 이더리움의 블록넘버 및 이더리움 해쉬 속도(CPU성능 및 메모리에 따라 해쉬속도는 다름)

eth.getTransaction(해쉬값), eth.sendTransaction(from, to, value), eth.pendingTransaction

트랜잭션 전송, 정보, 펜딩된정보를 얻는 명령어

ps. 그 외 나머지 명령어들은 web3 명령어와 유사하므로 web3 Documentation를 참고하시면 됩니다.