Smart Contract 개발 #3 Mist Browser를 이용한 컨트랙트 Deploy

in #coinkorea2 years ago

이전 글에서 Mist Browser를 설치하고 테스트넷에서 쓰기 위한 Ether를 받아 보는데까지 해봤습니다.

아시죠? 블락체인 세상에서 글타래도 체인화 추세라는 거요~. 이전글을 따라가시면 시리즈 글을 모두 보실 수 있습니다.

이전글 - Smart Contract 개발 #2 Deploy를 위한 Mist Browser 설치


이번 글에서는 컨트랙트를 테스트넷에 deploy하는 걸 해보겠습니다. 그나저나 테스트넷에서 Ether는 받으셨나요? Ether가 없으면 테스트 해볼 수가 없습니다. Ether 없으신 분들은 얼른 가서 받으세요. 3 Ether는 즉시 나오니까요.

스마트 컨트랙트의 개념은 대략 아실텐데요. 스마트 컨트랙트를 deploy한다는 것은 무슨 뜻일까요?

스마트 컨트랙트를 deploy하면 컨트랙트가 블락체인 네트워크에 올라가게 되는데요, 그건 바로 지갑에서 계정을 만들면 주소가 얻어지듯이 스마트 컨트랙트의 주소가 생성되어 접근할 수 있게 됨을 의미합니다.

1. 스마트 컨트랙트 생성

Mist Browser를 엽니다( Ethereum Wallet 프로그램을 실행하는 것과 같습니다.) 그러면 또다시 블락체인 동기화 작업을 할 것입니다. 오랫동안 동기화 하지 않았다면 그만큼 동기화 하는데 시간이 걸립니다. 다행히 테스트넷이라 몇 분이면 됩니다.

  • Ethereum Wallet 메뉴를 보면 오른쪽 상단에 CONTRACTS라는 아이콘이 보입니다. 그것을 클릭하면 아래와 같이 나타납니다.
    mist11.png

  • 메뉴중 DEPLOY NEW CONTRACT를 클릭합니다.

2. 스마튼 컨트랙트 Deploy

아래와 같은 화면이 나타납니다.
mist12.png

그림 왼쪽 하단에 SOLIDITY CONTRACT SOURCE CODE라는 곳이 보입니다.

  • 작성한 Solidity 소스코드를 복사해서 붙여 넣습니다.(Visual Studio Code에서 컴파일 하여 오류를 수정하고 붙여 넣습니다.)
  • 지금은 기본으로 있는 Solidity 코드를 사용하여 deploy하겠습니다.
  • Solidity 코드를 붙여 넣으면 코드가 컴파일 되고 Ethreum Virtual Machine (EVM)에서 돌아갈 수 있는 Byte Code가 생성됩니다.
  • 컴파일 에러가 없다면, 오른편 하단에 SELECT CONTRACT TO DEPLOY 섹션이 있고 Pick a contract라는 드랍다운 메뉴가 보입니다.
  • 그것을 클릭해보면 My Contract라고 되어 있습니다. 그것을 선택합니다.
  • 그러면 왼쪽 제일 밑에 TOTAL 부분에 필요한 개스(gas)비용이 보입니다. 컨트랙트를 수행하기 위해 수수료로 Ether가 사용되는 것입니다. 왼쪽 중간쯤에 SELECT FEE섹션이 보입니다. 컨트랙트가 블락체인 네트워크 상에서 동작하기 위해 비용입니다. 데이터 보내는 사람이 설정할 수 있게 되어 있습니다. 너무 작게 하면 컨트랙트가 돌다가 멈추는 경우가 있습니다. 그러면 결국 컨트랙트 deploy는 안되는거죠.
  • 마지막으로 화면 제일 하단에 DEPLOY라는 버튼이 보이는데 클릭합니다. 그러면 아래와 같이 Create Contract 화면이 나타납니다.
    mist13.png

3. 생성된 컨트랙트 확인

  • 잠시 기다리면 아래와 같이 컨트랙트가 생성된 것 확인할 수 있습니다.
    mist14.png
  • 그럼 이제 이 생성된 Contract를 이용할 수 있게 되는 거죠.
  • Deploy된 컨트랙트가 사용되는 예는 아래 그림에 잘 나타나 있습니다.
    mist15.png
  • 위 그림의 출처인데요, 스마트 컨트랙트, Solidity 관련하여 좋은 자료가 많아서 공유합니다.
    https://wulfkaal.files.wordpress.com/2017/04/lecture-2-smart-contracts-and-solidity-basics1.pdf

Mist Browser를 이용하여 간단한 Smart Contract를 Deploy하는 것까지 해봤습니다. 다음에는 Solidity 코딩과 스마트 컨트랙트 개념 등으로 포스팅하려고 합니다.
그럼 그때까지 안녕~

Sort:  

Cheer Up!

  • from Clean STEEM activity supporter

오늘도 풀보리스팀 합니다. 이 시리즈 진짜 대박이에요. 너무 감사해요. 조만간 꼭 따라해봐야겠어요.

과찬이세요.
스터디하고 있는 내용을 정리해서 올리는 수준인걸요.
이미 솔리디티나 스마트컨트랙트의 좋은 강좌들이 많더라구요. 스티밋에서도 몇 분이 하셨구요. 근데 다들 중간에 그만 두신 듯. 저는 개발하고 싶은게 있어서 한 번 개발까지 가보려구요~
항상 고맙습니다~

다른분이 어떤 강좌를 올리셨는지 모르겠지만 단연코 이런 정성으로 올리시는 분은 극히 드물다 생각합니다. 그중에 꾸준히 끝까지 자신이 올리고자 하는 지점까지 올리는 분들은 더더 적을거구요.
저를 스팀잇으로 이끈게 바로 이더리움에 대한 관심이고 DApp을 만들어보고 싶어서 책까지 사봤는데도 아직 실제 개발은 시작도 못하고 있습니다. 해외 자료까지 다봐도 체계적으로 처음부터 끝까지 따라할 수 있게 만든 강좌는 아직 거의 보지 못한거 같습니다. 저는 진심으로 etainclub님의 이번 시리즈에 지대한 관심이 있으며 꼬옥 끝까지 올리셨으면 좋겠습니다 ㅜㅜ 아직 나중을 위해 리스팀만 하고 있지만 반드시 조만간 따라쟁이가 되도록 하겠습니다. 정말 감사합니다 ^^

어이쿠~ 너무 고맙습니다.
저도 아직 dApp 개발한 게 없는걸요. 이번에 해보려고 하는거구요. 저도 시작하기 좋은 자료를 찾아봤는데 체계적인 자료를 못찾았습니다.
처음 시작하는 분들께 좋은 자료가 되면 저도 기쁘겠네요~ 기쁜 마음으로 할 수 있을테니까요~
고맙습니다.

오우~포스팅 하실때 고생 하셨을거 같아요~!!!
전 이태인클럽님 포스팅 넘나 유익하다는 생각이들어요!!! 명상도 그렇구요!(개와 고양이들 특훈들어갔습니다 ㅋㅋ)
당연히 풀봇하고 갑니다~^^

네.. 막 졸면서 해서 오타도 있고 그래요 ㅋㅋ
좋게 봐주시니 너무 기쁩니다~
개, 고양이들도 분명 할 수 있을거예요 ㅎ 진심으로~
응원합니다.