Smart Contract 개발 #2 Deploy를 위한 Mist Browser 설치

이전글에서 Visual Studio Code로 Solidity 개발 환경 구축하는 것을 알아봤습니다.

시리즈 제목이 Smart Contract 개발인 만큼, 이전 글들을 체인화하여 이어서 볼 수 있도록 했습니다. 아래 링크를 따라가세요~

이전글 - Smart Contract 개발 #1 Visual Studio로 Solidity 프로그래밍하자

아쉽게도 리눅스(Ubuntu) 버전인 Visual Studio Code에는 스마트컨트랙트 deploy기능이 없습니다. 윈도우즈 버전에는 있으니 참고하세요.

그래서 리눅스에서 개발하려면 deploy가 가능한 툴이 필요합니다. 가장 대표적인게 Mist Browser입니다.


이번에는 Mist Browser 설치에 대해서 알아보겠습니다.

먼저 저의 개발환경은 다음과 같습니다.

  • Ubuntu 16.04 (x64)
  • CPU: i3(4세대)
  • GPU: GTX 1060 (6GB)

Mist Browser를 설치하기 위한 참고자료는 본 포스팅 하단에 기재하도록 할테니 참고하세요.

저도 이번에 처음 설치해봤습니다. 기존 자료들하고 바뀐 부분들이 있거든요. 잘 따라와 보세요~
Let's Go!

1. Mist Browser 설치 프로그램 다운로드

  • 다운로드 주소: https://github.com/ethereum/mist/releases
  • 자신의 개발환경에 맞는 파일을 다운로드 받습니다. 저는 Linux이고 64비트(x64)이고, pre-built 파일을 받습니다.
    Ethereum-Wallet-linux64-0-9-2.deb
  • 다운로드 받은 파일을 더블 클릭합니다.(네 리눅스, 정확히는 우분투에서도 .deb 파일을 더블클릭하면 설치됩니다.) 그럼 아래와 같이 창이 뜨는데 그림에서 "Install" 버튼을 클릭합니다.
    mist01.png

2. Mist Browser 인스톨

  • Ubuntu의 프로그램 검색창에 "Ethereum Wallet"을 치면, 프로그램 아이콘이 나타납니다. 클릭합니다.
  • Mist 설치를 위해 Main network를 사용할지, Test network을 사용할지 선택합니다. Main network을 사용한다는 것은 지금 돌아가고 있는 Ethereum blockchain (180GB 이상)의 데이터를 싱크한다는 것입니다. 하드 용량이나 다운받는 시간이나 너무 무리겠죠? 그래서 개발을 위해서 Test network을 선택합니다.

위 그림 하단에 block이 다운로드되고 있는 것을 볼 수 있습니다. 이 상태에서 Next를 클릭하여 다음으로 넘어갑니다.

  • 다음으로 Wallet의 암호를 입력합니다. 나중에 Mist Browser에서 keystore 폴더를 백업하는 걸 잊지 마세요.
  • block 다운받는 사이에 Learning에 대한 부분이 나오는데, 한 번 살펴보시면 됩니다. block 다운로드가 끝나고 blockchain 싱크가 완료되기 까지 기다립니다. Test 네트워크(Rinkeby)의 경우 약 10분정도 소요됩니다.
  • 저는 기다렸더니 아래와 같은 화면이 나왔습니다.
    mist02.png
  • 뭔가 진행이 안되길래, 프로그램을 종료하고 새로 시작했더니 아래와 같은 Mist Browser 초기화면이 나타났습니다.
    mist03.png

3. Keystore 파일 백업 (Main 네트워크 사용시 매우 중요)

  • Mist Browser 상단에 File -> Backup -> Accounts를 누르면 keystore가 저장된 폴더가 열립니다. keystore 폴더 자체를 복사해서 usb나 다른 곳에 보관합니다. keystore 폴더에는 이더 주소의 개인키를 암호화한 것이 저장되어 있으니 매우 중요합니다.
  • 테스트넷의 blockchain 사이즈를 한 번 보겠습니다. 저는 Test 네트워크 중에서도 Rinkeby라는 테스트 네트워크가 자동 설정되어 있습니다. 약 1.2GB를 차지하고 있네요.

mist04.png

  • 위 그림을 보시면 keystore 저장위치를 확인할 수 있습니다.

그런데 문제가 발생했습니다! Ether를 Mining할 수 있는 메뉴가 사라졌습니다!!!

참고자료들을 보면 테스트넷에서 Ether를 채굴할 수 있다고 나오는데 그 메뉴 자체가 없었습니다. 당황하지 않고 바로 검색을 했습니다. 자 다음단계로 테스트넷에서 쓸 Ether를 얻는 방법입니다.

4. 테스트넷용 Ether 얻기

  • 요즘은 테스트넷용 Ether도 인기인가 봅니다. 무방비하게 채굴되다 보니 일정 제한을 걸어 둔듯 합니다.
  • 먼저, Github 계정을 만들어야 합니다.(개발자들은 대부분 가지고 계시죠? 계정 생성은 생략하겠습니다.)
  • Github에 로그인 합니다.
  • http://gist.github.com로 이동합니다. 아래와 같이 Gist 파일을 생성합니다. 파일명은 적당히 넣으시고, 중요한 것은 파일 내용입니다. 하나의 라인으로 Ethereum Wallet의 주소를 복사해서 넣습니다. 제 주소는 0x3ef886409508BcC3E0a4376B2a720608e758C80A입니다.
    mist09.png
    참고로 GithubGist는 소스코드를 웹사이트에 공유하기 위한 간편 주소 같은 것입니다. Youtube 동영상을 웹사이트에 임베드하는 것처럼요. 소스코드를 임베드할 때 사용합니다.
  • 위에서 생성한 GitHubGist 파일의 링크(주소창의 내용)를 복사합니다. 제 경우는 https://gist.github.com/EtainLove/732b6b5c00830ec35f0972c88088a49b 입니다.
  • 좀 복잡하지요?? 다왔습니다. 힘내세요
  • 테스트넷 웹페이지로 이동합니다. Rinkeby의 경우는 이곳입니다.
    https://www.rinkeby.io/
    다른 테스트넷은 웹페이지가 다르니 주의하세요.
    mist05.png
  • 접속하면 왼편 메뉴중 "Crypto Faucet"(암호화폐 수도꼭지)를 클릭합니다.
  • 아래와 같이 복사해 둔 GitHubGist 파일 링크를 창에 붙여 넣습니다. 그리고 오른편 "Give me Ether" 드랍박스를 클릭하여 원하는 옵션을 선택합니다. 3 Ether에 8시간 걸린다고 나와있는데, 거의 즉시 발행됩니다. 야호~
    mist07.png

5. 계정에서 Ether 확인

  • Mist Browser 프로그램(Ethereum Wallet)으로 가서 자신의 계정의 Balance를 확인해 봅니다. 3 Ether가 들어와 있나요? 축하합니다. 성공하셨습니다!
    mist08.png

Mist Browser 설치하는 것만 해도 간단치 않네요. 제 고생으로 다른 분들은 설치하는데 좀 쉬웠으면 좋겠네요~

다음 포스팅은 Mist Browser를 이용하여 Smart Contract를 Deploy하는 것에 대해서 써보겠습니다. 그럼 그때까지 안녕~


참고 자료

Introducing ethereum and solidity chapter 2. The Mist Browser
http://www.heavymeat.uk/books/introducingethereumandsolidity.pdf

@atomrigs님의 설치(2016년 3월 자료)
https://www.ddengle.com/trading_voted/1124434

Step-by-Step Guide: Getting Started with Ethereum Mist Wallet (2016년 8월 자료)
https://medium.com/@attores/step-by-step-guide-getting-started-with-ethereum-mist-wallet-772a3cc99af4

How to get on Rinkeby Testnet in less than 10 minutes
https://gist.github.com/cryptogoth/10a98e8078cfd69f7ca892ddbdcf26bc

블로그 등에 소스 코드 Snippet 붙여넣기 - GitHub Gist
http://hanmomhanda.tistory.com/entry/%EB%B8%94%EB%A1%9C%EA%B7%B8-%EB%93%B1%EC%97%90-%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-Snippet-%EB%B6%99%EC%97%AC%EB%84%A3%EA%B8%B0-GitHub-Gist

H2
H3
H4
3 columns
2 columns
1 column
6 Comments