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

윤민재·2021년 2월 7일
0

<개발환경>

윈도우 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를 설치가 완료 됩니다.

  • 프라이빗 네트워크(로컬) 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

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

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

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

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

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

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를 참고하시면 됩니다.

참고

https://web3js.readthedocs.io/en/v1.3.0/

profile
DBA / Engineer

0개의 댓글