Ethereum_04.Geth 명령어 1편

안녕하세요 카이조쿠BM 입니다.

 

오늘은 저번 시간에 이어서 Geth 명령어에 대한 학습을 해볼게요

 

저도 학습하는 단계라 많이 부족하지만 코멘트해주시면 잘 반영하겠습니다 ㅎㅎ

 

지금부터 우리가 하는 실습은 Geth를 실행하고 Console로 내리는 명령이라는 걸 잊지 마세요!!

 

Console로 말고도 명령이 가능합니다!!

 

그럼 이제 드디어 실습을 들어가 봅시다!!

 

1.Geth - Account Create

 

Geth를 실행했으면 노드로써 거래를 하기 위해서 계정이 필요하겠죠? 

 

일반적으로 우리가 생성하는 계정은 Account라고 하는 Externally Owned Account라고 하는 외부 소유 계정이라고 합니다.

 

자 그럼 생성해봅시다.

 

 

 >personal.newAccount(“pass0”) 

 

 

newAccount 인자로는 생성할 계정의 비밀번호(“pass0”)가 필요로 합니다.

 

계정이 생성이 성공적으로 진행되면 다음과 같이 계정에 대한 주소를 Hash값으로 반환해 줍니다.

 

 

 

Account 생성 반환 값

 

 

이제 이 Hash값을 이용해 송금 등 여러 가지를 할 수 있습니다.

 

이외에도 여러가지 계정을 만들어 보세요!

 

여기서 주의할 점은 우리가 만드는 계정들은 하나의 노드에서 만드는 여러 가지 계정으로 하나의 노드는 여러 개의 계정을 가질 수 있다는 걸 알겠죠?

 

 

 

2.Geth - Account Check

 

 

>eth.accounts  

 

OR

 

>eth.accounts[index]

 

 

계정을 조회하는 방법은 두 가지가 있습니다. "eth.accounts"는 한 번에 모든 계정을 다 출력해줍니다.

 

"accounts[index]" 는 계정들을 하나의 배열로 관리하며 index번호로 하나하나 조회가 가능합니다.

 

 

 

3.Geth - Etherbase

 

 

 

Etherbase는 채굴에 성공했을 때 보상을 받는 계정을 말합니다.

 

채굴은 Transaction을 담은 Block을 Chain에 연결하는 걸 말하는 거 아시죠?

 

Etherbase는 기본적으로 0번 계정에 자동 설정이 됩니다. 

 

 

>eth.coinbase

 

 

eth.coinbase 결과

 

위 그림을 보시면 첫 번째 명령을 수행한 내용과 account [0] 번 계정의 Hash값이 같은 걸 보실 수 있습니다.

 

이 Etherbase는 다음과 같이 변경이 가능합니다.

 

 

> miner.setEtherbase(eth.accounts[index])

 

 

index를 1번에 넣고 실행하면 다음과 같은 결과가 나옵니다.

 

 

setEtherbase(eth.accounts[1])

 

 

그럼 True를 반환하고 성공했다는 걸 확인할 수 있습니다!!

 

 

4.Geth - Balance

 

 

채굴에 성공하거나 누군가로부터 받은 돈은 내 Accounts중 하나에 저장이 되겠죠?

 

내 잔고를 확인하기 위한 명령어는 다음과 같습니다.

 

 

> eth.getBalance(eth.accounts[index])

 

 

마찬가지로 index로 노드가 가지고 있는 Eth를 조회할 수 있어요

 

index를 0번으로 주고 한번 조회해 볼까요??

 

 

accounts[0] 잔고 조회

 

값이 0 eth가 나왔네요 당연한 결과입니다. 아직 채굴도 안 했고 거래도 한 적이 없으니까요 

 

 

5.Geth - Block Number 

 

 

만약 채굴을 시작하여 Block의 개수가 늘면 그 Blcok의 개수를 확인할 수 있습니다.

 

 

> eth.blockNumber

 

Block 개수 조회

당연히 0개 이겠죠? 

 

6.Geth - Mining

 

이제 채굴을 시작하여 Block의 개수를 늘려볼까요? 명령은 아래와 같습니다.

 

 

> miner.start(1)

 

 

인자는 채굴에 사용할 Thread의 수를 지정합니다.

 

 

mining 반환 값

 

반환 값으로 null을 줬네요 초기 Ethereum에서는 True 혹은 False로 반환해줬는데 이제는 null을 반환합니다.

 

채굴을 시작했는데 채굴이 진행 중인지 궁금하시죠? 다음과 같은 명령어로 확인이 가능해요

 

> eth.minig

mining 상태 확인

 

결과가 True로 반환해 줬네요? 정상적으로 채굴을 진행 중이라는 거죠

 

혹시 채굴 속도는 궁금하지 않으세요? 채굴 속도도 조회가 가능합니다.

 

 

> eth.hashrate

 

 

채굴 속도

 

값이 69557이 나왔네요? 이 수치는 1초에 69557번 Hash 연산을 하고 있다는 말입니다.

 

 

이제 계속 채굴을 할 수는 없으니 채굴을 멈춰 봅시다!! 채굴 명령은 다음과 같아요

 

 

> miner.stop()

 

 

mining Stop

 

반환 값을 null을 줬으면 정상적으로 멈추었다는 이야기입니다.

 

그동안 채굴을 했으니 Block의 개수가 늘었겠죠? 어디 한번 확인해 봅시다!

 

 

채굴 후 Block 수 확인

 

와... 그 짧은 시간에 217개의 Block을 생성했네요.. 

 

사실 이건 저희가 초기에 genesis.json을 만들 때 채굴의 난이도를 낮게 해 놨기 때문인 거 아시죠??

 

그럼 mining이 된 데이터를 볼까요? 이 데이터는 Datadir에 있습니다.

 

/home/lbm/data_testnet/geth.log에 저장이 되어 확인이 가능합니다.

 

 

Datadir mining data

 

7.Geth - ETH 단위

 

Ethereum자체는 Bitcoin의 "Lack of state(상태 표현 제한)"을 해결한 BlockChain으로 화폐의 단위를 여러 가지로 나뉘어 표현됩니다.

 

ETh 단위

출처 : https://ezio.tistory.com/108

 

이더리움 단위 및 환산

더리움에는 Ether라는 가상화폐가 구현되어 있다. 비트코인 블록체인은 비트코인이라는 가상화폐 그 자체만을 위한 1세대 블록체인 기술이지만 이더리움은 스마트계약의 구현을 위한 2세대 블록체인 기술이며 가..

ezio.tistory.com

 

 

이상  Geth의 기본적인 명령어를 살펴보았는데요 다음 시간에는 송금에 대하여 알아볼게요!!

 

이상 카이조쿠BM 이였습니다.

 

오늘도 수고 많으셨습니다.!!

 

'IT Study > Block Chain' 카테고리의 다른 글

Ethereum_05.Geth 환경 설정(Multi Node 만들기)  (1) 2019.05.14
Ethereum_03.Geth 실행 및 옵션  (0) 2019.04.26
Ethereum_02.Geth 환경 설정  (0) 2019.04.26
Ethereum_01.Geth 설치  (0) 2019.04.26