[블록체인 PICK] EOS Smart Contract 배포

in kr •  6 years ago 

EOS Smart Contract 배포

픽1.JPG

Smart Contract 배포를 위한 준비 과정은 이전글 확인 부탁드립니다.

저번시간과 연계하여 이번 시간엔 스마트 컨트랙트를 배포해 보도록 하겠습니다. 지갑 key와 계정 이름등은 본 포스팅에서 그대로 사용하시면 됩니다.

배포할 컨트랙트는 eosio.token 으로 eos 개발환경 세팅 시 존재하는 코드를 컴파일하여 실제 사용하는 계정에 setting 하겠습니다. 먼저 컴파일을 위해 ../eos/contracts/eosio.token 으로 이동 하겠습니다.

픽2.JPG

이동 하면 위와 같은 파일들을 확인 하실 수 있습니다.

hpp : cpp 파일에서 사용하는 변수, 상수, 함수를 담는 헤더파일
cpp : contract 함수를 구현하는 소스 파일

eosiocpp 를 통해 소스코드를 컴파일 해보겠습니다. eosiocpp 는 WASM 및 ABI 컴파일러 로써 블록체인에 업로드 되는 .wasm, .wast, .abi 파일을 생성합니다. 또한 기본 스켈레톤 파일을 제공합니다.

vlr3.png

eosiocpp



wasm 컴파일

wasm 파일은 아래 명령어를 사용하여 컴파일 만들 수 있습니다.

픽4.JPG

eosiocpp 명령어를 사용하여 컴파일 하게 되면 .wast 파일과 .wasm 파일을 생성하게 됩니다. 각 확장자는 다음을 의미합니다.

wast : 텍스트 파일로써 읽을 수 있는 webAssembly 파일
wasm : 컴퓨터가 실제로 이해할 수 있는 webAssembly 파일


abi 파일 생성

픽5.JPG

abi 파일은 JSON과 Binary 간에 사용자 작업을 변환하는 방법에 대해 설명해주는 파일입니다. 실제로 이 JSON 파일을 통해 블록체인 위에서 개발자와 사용자간 상호작용 하는데 도와주게 됩니다.

위 2과정을 통해 abi 파일 과 wast 파일을 생성하게 됩니다.

픽6.JPG


Contract 세팅하기

아래 명령어를 입력하여 contract 를 set 해줍니다.

픽7.JPG

account : contract 를 배포할 계정이름
contract-dir : 계정에 set 할 contract 가 저장된 directory

픽8.png

set contract 수행 결과

만약 해당 계정이 RAM 을 보유하고 있지 않다면 다음과 같은 에러가 나타날 것입니다. 이를 해결하기 위해 RAM 을 구매합니다.

픽9.png

RAM을 보유없이 contract

픽10.JPG

payer : EOS 를 지불할 계정
receiver : RAM 을 사용할 계정
amount : 지불할 EOS의 양 ( eos 1.1 기준 소수점4개 자리와 symbol을 무조건 넣어주어야 정상 동작 합니다)


contract 확인

계정에 contract가 잘 배포 되었는지 확인해 보겠습니다.

픽11.JPG

또한 abi 를 통해서도 확인할 수 있습니다.

픽12.JPG

픽13.JPG

위 과정을 통해 해당 계정에 실제로 contract 가 잘 배포 되었는지 확인 할 수 있습니다.

다음 시간에는 배포된 contract 를 통하여 토큰을 발행 해보고 token에 대한 balance 체크 및 transfer 하는 과정을 진행해 보도록 하겠습니다.

+또한 abi를 분석하여 struct 와 action 을 어떻게 확인 하는지에 대한 자세한 방법은 다른 포스팅에서 다루도록 하겠습니다.

감사합니다.


픽14.JPG

원문 확인하기 >> https://bit.ly/2MDIK47

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!