스팀을 참고하여 음악 판매 사이트 만들어보기 Project - Geth 설치하기

in kr-newbie •  7 years ago 

dApp 개발환경 구축

일단 dApp개념은 차치하고 블록체인에도 초짜인 나는 다른 프로그래밍에도 문외한이나 다름이 없다.의사국가고시에 낙방해버린 덕에 1년간 합법적인 백수가 되지 않았다면 절대 알지 못했을 영역인데 시간이 넘쳐나는 덕에 공부하게 되어 참 감사하다. 넘치는 시간과 에너지를 쓸데 없는 곳에 쓰지 말고 생산적인 곳에 사용해본다면 나의 자존감을 지키는 데에도 도움이 될 것이라고 생각했고, 혹시 잘 되면 더 좋고라는 생각이다.모든 것의 초짜인 나는 잘 정리된 정보를 차근차근 따라가는 것 부터 시작하려 한다. 의학 공부도 아무것도 모르고 야마보는 것부터 출발이 아닌가?

오늘의 야마

고려대학에서 교수님이 대학원생들이랑 쓴 책 인것 같다.

본인들이 사용한 방법을 직접 써놓으신 것 같아 무작정 따라하기 좋을 것 같았다.

개발환경 구축   

  • 이더리움 클라이언트 설치 (Windows10 기준)
  • Geth 클라이언트 계좌 만들기
  • 사설 이더리움 네트워크 구축하기
  • Genesis 블록 생성하기
  • 이더리움 지갑 설치하기 (Mist)

이 순서로 개발환경을 구축해보려고 한다. 사실 한 포스트에 개발환경 구축을 마무리지으려 했는데 geth 설치부터 뜻하지 않은 난관에 봉착하여 이 포스트는 Geth 설치까지만 하는 것으로 하겠다.   

설치 과정

설치 자체는 매우 간단하다

주소에서 패키지를 다운로드 한다

설치한다

실행해본다   

문제는 가는 길에 오류가 굉장히 많이 난다는 것이다. 안일하게 남들이 잘 만들어 놓은 프로그램만 쓰던 내가 개발자들이 실시간으로 만지작거리는 세계를 가서 그런 건지 뭔지는 몰라도 이런 소소한 오류가 계속 발생하는 것이 나에게는 굉장히 당황스러웠다.

설치주소 : https://geth.ethereum.org/downloads

들어가면 이런 창이 나온다.

 For windows를 설치하고 아래에 보면 stable releases와 개발자버전이 있다.   

stable release는 뭔가 사용자를 위한 것 같고 그 아래는 geth를 직접 만지는 사람들이 보는 것이라는 인상을 받았다. 나는 일개 사용자이기 때문에 stable중에 가장 버전이 높은 것에 운영체제에 맞게 64bit를 다운로드 했는데..

자꾸 다운로드 실패가 뜨면서 끊기는 것이 아닌가... 외국 서버라 그런가? 내 인터넷이 이상한가? 별 생각을 다하면서 계속 눌렀는데 1~2mb 받아지고 끊긴다. 당혹스러워 하며 해결책을 찾다가 결국 선택한 방법은 원시적인 것이었다. 

'다운로드 재개'를 계속 누르는 것이었다.   

그러면 끊긴 곳부터 받아져서 결국 끝까지 받아지더라.. 깃허브 서버는 항상 느리긴 했는데 이렇게 끊기진 않았는데 외국이어서 그런것인가 하고 말았다

아무튼 다운로드를 완료하고 나면

흔해빠진 설치 대화상자가 나오니 계속 어그리 다음다음 하다보면 설치가 된다. Developer kit 를 설치할 것인지 물었는데 일단은 안했다. 

실행은 cmd에서 cmd>geth를 시행해보면 된다. 확인하고 다음으로 넘어가려는데..

System clock seems off by xxxxxxxs, which can prevent network connectivity

Please enable network time synchronisation in system settings

뭐 이런 경고문이 뜨는게 아닌가... 무슨 에러인지 확인해보니 geth 실행 뿐만 아니라 미스트 실행시에도 이 이슈가 사람들을 꽤나 괴롭히는 듯 했다.

곰곰히 생각해보니 전에 컴퓨터 자동 표준시 동기화 설정을 했더니 시계가 틀어지길래 내가 핸드폰으로 컴퓨터 시계를 돌려놨었던게 기억이 났다. 그래서 날짜-시간 조정에 가서 '자동으로 시간설정' 옵션을 체크를 했는데 안된다.

구글에 자세히 알아보니 ntp서버와 동기화가 안되는 경우에 명령 프롬프트로 가서 직접 해줘야 한단다.

도움받은 링크는 이것이다.

https://www.tenforums.com/tutorials/6410-synchronize-clock-internet-time-server-windows-10-a.html

영어가 불편하신 분들도 있다면 (나도 약간 불편하다) 한글로도 소개해 놓은 사람들이 있었다.

http://lovemind.tistory.com/107  

http://blog.daum.net/jungsangun/7691206


이분들에게도 도움을 받았다.

하지만 나는 외부 ntp서버를 아무리 바꿔도

 net stop w32time하고

net start w32time 한 뒤에

w32tm/resync를 아무리 해도 사용가능한 시간 데이터가 없다고 나와서 머리가 터질 뻔 했다.

외부 ntp 서버를 윈도우서버에서 - LG uplus ( time.bora.net ) - KT( ntp.kornet.net )로까지 바꿔봤고 

재동기화 시간을 10분(600초)로 줄이는 레지스트리 편집까지 거치며 했지만 

net stop w32time하고

net start w32time 한 뒤에

w32tm/resync를 하면 항상 같은 결과가 나왔다.

컴퓨터를 부셔버릴까 하다가 홧김에 cmd에서 geth를 실행해 봤는데..  

 

???? geth가 돌아가는 것이 아닌가?

내 생각에는 ntp시간 동기화가 오차를 줄어가는 식으로 동작한다고 누가 그랬던 것 같아서 (이런 저런 포스팅 읽다가 주운 내용) 내가 계속 헛짓거리를 반복하는 동안 서버 시간 오차가 허용할 만큼 줄어들어서 실행된 것이 아닌가 싶었다.geth가 실행되는 과정을 흐뭇하게 10분간은 바라본 것 같다. 

아쉬운 마음을 뒤로 하고 ctrl+c를 하여 geth를 중단시키고

나는 편안하게 밥을 먹으러 갔다.   

아마 이유를 모르게 geth를 돌리다가 안돌아가거나 Mist 지갑을 돌리다가 멈추는 사람들이 있을 것 같다.

나도 이전에 Mist동기화중에 Peer접속이 안된다며 멈춰서 해결이 안된 적이 있었는데 이 시간동기화가 원인이었던 것 같다.생각해보면 당연한게 '분산 원장'이니까 타임스탬프가 맞아돌아가려면 피어간에 시간 동기화가 잘 이뤄져야 하는데 나는 매뉴얼하게 시계를 돌렸으니 미스트가 안 돌아가는 것도 이해가 된다.

퀀텀지갑에서도 같은 이슈가 있었는데 이 문제일 것이라 생각한다. 지금 블록체인 갖고 노는 분들은 보통 고수니까 이런 고생 안하시겠지만 저와 같이 뉴비가 어줍잖게 해보려다가 안되는 경우에 댓글로 문의 남기시면 해결 과정에 대해 더 자세하게 포스팅 하겠습니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @inhealba! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

Valentine's day challenge - Give a badge to your beloved!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

좋은 개발 부탁해요ㅋ
100팔로이벤트 많은참여바랍니다^^
https://steemit.com/kr-newbie/@dmgpol09/100

Congratulations @inhealba! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Do not miss the last post from @steemitboard:

Valentine challenge - Love is in the air!

Support SteemitBoard's project! Vote for its witness and get one more award!