안녕하세요 카이조쿠BM 입니다.
오늘은 저번 시간에 이어서 Geth 명령어에 대한 학습을 해볼게요
저도 학습하는 단계라 많이 부족하지만 코멘트해주시면 잘 반영하겠습니다 ㅎㅎ
지금부터 우리가 하는 실습은 Geth를 실행하고 Console로 내리는 명령이라는 걸 잊지 마세요!!
Console로 말고도 명령이 가능합니다!!
그럼 이제 드디어 실습을 들어가 봅시다!!
1.Geth - Account Create
Geth를 실행했으면 노드로써 거래를 하기 위해서 계정이 필요하겠죠?
일반적으로 우리가 생성하는 계정은 Account라고 하는 Externally Owned Account라고 하는 외부 소유 계정이라고 합니다.
자 그럼 생성해봅시다.
>personal.newAccount(“pass0”)
newAccount 인자로는 생성할 계정의 비밀번호(“pass0”)가 필요로 합니다.
계정이 생성이 성공적으로 진행되면 다음과 같이 계정에 대한 주소를 Hash값으로 반환해 줍니다.
이제 이 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
위 그림을 보시면 첫 번째 명령을 수행한 내용과 account [0] 번 계정의 Hash값이 같은 걸 보실 수 있습니다.
이 Etherbase는 다음과 같이 변경이 가능합니다.
> miner.setEtherbase(eth.accounts[index])
index를 1번에 넣고 실행하면 다음과 같은 결과가 나옵니다.
그럼 True를 반환하고 성공했다는 걸 확인할 수 있습니다!!
4.Geth - Balance
채굴에 성공하거나 누군가로부터 받은 돈은 내 Accounts중 하나에 저장이 되겠죠?
내 잔고를 확인하기 위한 명령어는 다음과 같습니다.
> eth.getBalance(eth.accounts[index])
마찬가지로 index로 노드가 가지고 있는 Eth를 조회할 수 있어요
index를 0번으로 주고 한번 조회해 볼까요??
값이 0 eth가 나왔네요 당연한 결과입니다. 아직 채굴도 안 했고 거래도 한 적이 없으니까요
5.Geth - Block Number
만약 채굴을 시작하여 Block의 개수가 늘면 그 Blcok의 개수를 확인할 수 있습니다.
> eth.blockNumber
당연히 0개 이겠죠?
6.Geth - Mining
이제 채굴을 시작하여 Block의 개수를 늘려볼까요? 명령은 아래와 같습니다.
> miner.start(1)
인자는 채굴에 사용할 Thread의 수를 지정합니다.
반환 값으로 null을 줬네요 초기 Ethereum에서는 True 혹은 False로 반환해줬는데 이제는 null을 반환합니다.
채굴을 시작했는데 채굴이 진행 중인지 궁금하시죠? 다음과 같은 명령어로 확인이 가능해요
> eth.minig
결과가 True로 반환해 줬네요? 정상적으로 채굴을 진행 중이라는 거죠
혹시 채굴 속도는 궁금하지 않으세요? 채굴 속도도 조회가 가능합니다.
> eth.hashrate
값이 69557이 나왔네요? 이 수치는 1초에 69557번 Hash 연산을 하고 있다는 말입니다.
이제 계속 채굴을 할 수는 없으니 채굴을 멈춰 봅시다!! 채굴 명령은 다음과 같아요
> miner.stop()
반환 값을 null을 줬으면 정상적으로 멈추었다는 이야기입니다.
그동안 채굴을 했으니 Block의 개수가 늘었겠죠? 어디 한번 확인해 봅시다!
와... 그 짧은 시간에 217개의 Block을 생성했네요..
사실 이건 저희가 초기에 genesis.json을 만들 때 채굴의 난이도를 낮게 해 놨기 때문인 거 아시죠??
그럼 mining이 된 데이터를 볼까요? 이 데이터는 Datadir에 있습니다.
/home/lbm/data_testnet/geth.log에 저장이 되어 확인이 가능합니다.
7.Geth - ETH 단위
Ethereum자체는 Bitcoin의 "Lack of state(상태 표현 제한)"을 해결한 BlockChain으로 화폐의 단위를 여러 가지로 나뉘어 표현됩니다.
출처 : https://ezio.tistory.com/108
이상 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 |