토픽 내용을 시작하기 전에 먼저 다음과 같이 마음속으로 속삭여 보시라고 말씀드리고 싶네요.
"나는 내용이 아무리 어렵게 쓰여 있어도 아주 쉽게 받아 들일 수 있다!"
방금 학습에 있어서 매우 중요한 것을 알려드렸습니다.
어떤 것을 접하더라도 할 수 있다는 믿음이 있다면 그 학습 능력은 놀랄만치 올라간다는 것을요.
! 설명 동영상은 작업하는 대로 업로드 하겠습니다.
! 주의: 아래 내용은 확인되지 않은 내용을 포함하고 있습니다.
이전 토픽에서 마이닝 프로그램을 시작한 직 후, 아래와 같은 내용이 터미널에 출력이 됩니다. 블락체인에 대한 기본 정보가 없다면 아래와 같은 내용이 뭔지 전혀 감을 잡기도 어렵습니다. 숫자, 문자들이 많기 때문입니다.
주의하실게 하나 있습니다. Musicoin은 이더리움 블락체인을 사용합니다. 그래서 채굴 프로그램도 ethererum 마이너인 ethminer를 사용하고 있습니다. 이더리움 블락구조가 비트코인 블락구조랑 조금 차이가 있습니다. 이더리움은 다른 토픽에서 다루려고 합니다. 채굴할 때 보이는 숫자, 문자의 의미는 앞에서 배운 내용과 동일하지만 다른 블락 표기로 인해서 표시되는 값이 조금 다릅니다. 복잡하시죠? 저도 출력되는 값이 이상해서 찾다보니 알게 됐습니다~ ^^
간단한 예로, 비트코인 블락체인에서 블락의 해쉬값과 이더리움 블라락체인의 블락 해쉽값이 형태가 다릅니다. Musicoin의 블락체인 내용은 Music Orbiter를 참고하세요.
비트코인: #000000000000012fc.....
이더리움: #7dc5b99f....
이점을 주의하신 후 아래 내용을 봐주세요.
비트코인과 이더리움 블락 해쉬 표기법이 다릅니다.
Line By Line으로 알아보죠.
1. Received new job
ℹ 14:22:02|stratum Received new job #2c87
위 라인은 그래픽 카드 할당이 되기 전에 나타납니다. 제일 처음 마이닝에 관련한 출력인 셈이죠. 위 그림에서는 공간제약상 해당 내용이 중간에 나타나 있지만, 본인의 터미널을 잘 보시면 위와 같은 출력이 가장 먼저 보일 것입니다.
왼측부터 마이닝 시각이 나오고 통신 프로토콜로 Stratum을 사용하고 있습니다. 그다음 Received new job #2c87
이 나타납니다. 이것이 바로 새로 생성하려는 block의 번호입니다(추정됩니다.) 블락체인의 첫번째 블락이 0이라면 #2c87
을 10진주소 바꾸면 11399
번째 블락을 생성하려고 한다는 것입니다.
Music Orbiter로 블락 내용을 확인해보니 최근 블락 넘버(block height)는 858130(17년 8월 5일기준) 입니다. Received new job #2c87
에 #마크가 붙어 있는걸 보니 이것도 해쉬값으로 보입니다만, 관찰해보니 작업 마다 숫자가 하나씩 증가합니다. 그래서 블락 넘버라고 생각했는데, 이것도 아리송하네요. 명확한 설명을 찾으면 업데이트 하겠습니다.
2. set work
다음 라인을 살펴보면 아래와 같습니다.
ℹ 14:22:13|openclminer0 set work; seed: #feb48ef8, target: #00000000ffb3
좌측부터 마이닝 시각이 나타나 있고 해당 출력에 관계된 프로그램 이름이 표시되고 있습니다. 여기서는 openclminer 이라는 것이구요. opencl을 이요하여 마이닝한다는 의미입니다. 우리가 아래와 같이 -G 옵션을 주었기 때문입니다.
ethminer -G -S asia.ethash-hub.miningpoolhub.com:20585 -O etain.workername:x
그 다음 set work가 나타납니다. 마이닝을 위한 작업을 셋업하는 것입니다. 그 다음 보이는 seed: #feb45ef8
는 여러 자료를 찾아봤는데 그 의미를 명확이 모르겠습니다. 일단 관련 링크를 첨부하니 상세한 내용을 원하시면 참고하세요. 의미를 명확히 알게되면 설명 추가하겠습니다.
한가지 실험해 본걸 말씀드리면, seed 해쉬값은 거의 변하지 않는다는 것입니다. 잘 보시면 하나의 작업에서는 동일한 seed값을 사용하고 있고, 작업이 바뀌어도 seed값이 달라지지 않습니다. 마이닝 프로그램을 껐다 다시 실행시켜도 동일한 seed 해쉬가 사용되는 것이 관찰됐습니다. 약 1주일전에 올린 토픽에 나타난 캡쳐화면과는 다른 seed해쉽값이 쓰였네요.
그리고 마지막에 보이는 target: #00000000ffb3
것이 현재 블락 생성 난이도입니다. 앞에 0이 그렇게 많지는 않죠? 이게 듯보잡인 Musicoin 채굴이기 때문입니다. Musicoin의 현재 블락 생성 보상은 314개라고 합니다.
위 그림보시면 알겠지만 시작하자 마자 블락을 하나 발견했네요. 물론 제가 참여한 마이닝풀이요.
3. Mining on PoWhash
ethminer Mining on PoWhash #fa0e184b : 18.74MH/s [A0+0:R0+0:F0]
좌측부터 마이닝 프로그램 이름이 나오고 Mining on PoWhash #fa0e184b
가 나옵니다. 이 값이 바로 채굴하고자 하는 블락의 해쉬값입니다!
어랏? 이상하죠? 블락의 해쉬값은 채굴이 완료되어야, 즉 Nonce값이 발견되어야 블락 해쉬가 결정되는데 말이죠. 이전 토픽에서 블락의 해쉬, 엄밀히는 블락 헤더의 해쉬값은 (이전 블락헤어 해쉬, 블락 거래 요약 정보, Nonce)에 의해서 결정된다고 했습니다.
여기서 Mining on PoWhash #fa0e184b
값은 Nonce를 0으로 했을 때의 블락 해쉬값입니다. Nonce 이외에는 고정값이므로 Nonce만 0으로 하면 블락의 해쉬를 구할 수가 있습니다.
그 다음 나타나는 것이 바로 PC의 해쉬 파워입니다. 위에는 18.74MH/s라고 나와 있습니다. 짐작되시죠?
네 그렇습니다. 초당 해쉬계산으로 약 천팔백만번 한다는 것입니다. 1초동안 Nonce를 이리 저리 바꿔가며 블락 해쉬값을 천팔백만번 계산해서 target값보다 작은지 검토합니다. 여기서 비트코인 네트워크 위주로 설명드렸습니다. 위 값을 보시면 알겠지만 블락 해쉬값이 0으로 시작하지 않습니다. 이더리움은 블락 해쉬 표현이 비트코인과 다르기 때문입니다. 세부 내용은 여기를 참고하세요.
제일 오른쪽에 나타나는 문자, 숫자는 큰 의미가 없어보입니다. 자세히 모르겠습니다.
4. Mining on PoWhash
ℹ 19:12:20|openclminer0 Solution found; Submitting to asia.ethash-hub.miningpoolhub.com ...
ℹ 19:12:20|openclminer0 Nonce: 0x33996d6ade6bc3df
ℹ 19:12:20|stratum B-) Submitted and accepted.
드디어 채굴에 성공했습니다. target을 만족하는 Nonce값을 찾았네요. 그리고 생성한 블락을 블락체인 네트워크에 전송하여 받아들여졌다고 나타납니다.
5. 마이닝풀에서도 확인
마이닝 시작후 약 10분정도 지난 후 본인 계정으로 마이닝풀에 접속하합니다. 왼쪽 메뉴에서 해당 코인풀을 선택합니다.
위와 같은 페이지에서 아래의 화면에서 "대쉬보드"를 누릅니다. 그러면 아래와 같이 마이닝풀 동작 내용을 보실 수 있습니다. 가운데 제일 큰 그림이 본인 PC의 채굴속도입니다. 실제와 좀 차이가 있으니 알아두세요.
마이닝풀의 여러 메뉴를 보면 채굴 결과 몇 개의 코인을 캤는지도 보여줍니다.
6. 적정한 채굴시간?
집에서 채굴할 때 전기세가 겁나기 마련입니다. 그러나 우리 같이 재미삼이 몇 시간 켜놓는 것은 괜찮습니다. 제 경우를 설명드리도록 하겠습니다.
GTX 1060 그래픽 카드 최대 전력소비: 120W/시간
120W * 매일 8시간= 960Wh
960W * 30일= 28.8KWh
위와 같이 하루 8시간씩 한달 내내 돌렸을 때 최대 28.8KWh가 소비됩니다. 실제는 이보다 작겠죠. 제 경우 채굴전후 전기료 비교해보니 213KWh에서 227KWh로 14KWh 증가했네요. 30일 꼬박 돌린게 아니라서 그렇습니다.
집에서 해보실 분들은 전기료 고지서 비교해가면 돌리시면 되겠습니다. 500KWh가 넘으면 누진세가 크다고 하니 주의하시면 되고요. 아 그리고 GPU 몇 시간 돌리면 방안이 조금 후끈해 집니다. 참고하세요. 겨울엔 좋겠죠? ㅋ
마이닝 끝!
이번 토픽은 좀 고생했네요. 아리송한 부분을 검증하면서 작성하려니 쉽지가 않았습니다. 그래도 이것으로 마이닝 관련 토픽을 매조짔겠습니다.
이번 토픽의 홈워크는 자신의 해쉬 파워를 댓글에 남기는 것입니다.
포스팅한 내용이 유익했다면 아래의 스팀잇의 게시글 하단에 투표해주세요!
투표하셔도 스팀이나 스팀파워가 소모되지 않습니다.
강좌를 오픈튜토리얼스에서 온라인 강좌형태로 보실 수도 있습니다.
오픈튜토리얼스 바로가기
초보자를 위한 Blockchain 강좌 시리즈
- #1 강좌를 시작하며
- #2 블락체인 맛보기
- #3 Blockchain에 등장하는 용어들
- #4 블락체인에서의 거래 생성
- #5 디지털 서명
- #6 블락체인 구성
- #7 채굴 - 작업 증명
- #8 채굴 - 상세 동작
- #9 채굴 - 블락체인의 분기
- #10 채굴 - 신규 화폐 발행
- #11 채굴 - 블락 전파
- #12 재미삼아 하는 채굴 - 준비사항
- #13 재미삼아 하는 채굴 - 코인 주소(지갑) 만들기
- #14 재미삼아 하는 채굴 - 채굴 프로그램 설치
- #15 재미삼아 하는 채굴 - 마이닝풀 가입 및 채굴 시작
- #16 재미삼아 하는 채굴 - 채굴 화면 설명