Smart Contract 배포를 위한 준비 과정은 이전글 확인 부탁드립니다.
저번시간과 연계하여 이번 시간엔 스마트 컨트랙트를 배포해 보도록 하겠습니다. 지갑 key와 계정 이름등은 본 포스팅에서 그대로 사용하시면 됩니다.
배포할 컨트랙트는 eosio.token 으로 eos 개발환경 세팅 시 존재하는 코드를 컴파일하여 실제 사용하는 계정에 setting 하겠습니다. 먼저 컴파일을 위해 ../eos/contracts/eosio.token 으로 이동 하겠습니다.
이동 하면 위와 같은 파일들을 확인 하실 수 있습니다.
hpp : cpp 파일에서 사용하는 변수, 상수, 함수를 담는 헤더파일
cpp : contract 함수를 구현하는 소스 파일
eosiocpp 를 통해 소스코드를 컴파일 해보겠습니다. eosiocpp 는 WASM 및 ABI 컴파일러 로써 블록체인에 업로드 되는 .wasm, .wast, .abi 파일을 생성합니다. 또한 기본 스켈레톤 파일을 제공합니다
wasm 파일은 아래 명령어를 사용하여 컴파일 만들 수 있습니다.
$
eosiocpp -o eosio.token.wast eosio.token.cpp
eosiocpp 명령어를 사용하여 컴파일 하게 되면 .wast 파일과 .wasm 파일을 생성하게 됩니다. 각 확장자는 다음을 의미합니다.
wast : 텍스트 파일로써 읽을 수 있는 webAssembly 파일
wasm : 컴퓨터가 실제로 이해할 수 있는 webAssembly 파일
$
eosiocpp -g eosio.token.abi eosio.token.cpp
abi 파일은 JSON과 Binary 간에 사용자 작업을 변환하는 방법에 대해 설명해주는 파일입니다. 실제로 이 JSON 파일을 통해 블록체인 위에서 개발자와 사용자간 상호작용 하는데 도와주게 됩니다.
위 2과정을 통해 abi 파일 과 wast 파일을 생성하게 됩니다.
아래 명령어를 입력하여 contract 를 set 해줍니다.
$
cleos set contract hexlanthenry ../eos/build/contracts/eosio.token
만약 해당 계정이 RAM 을 보유하고 있지 않다면 다음과 같은 에러가 나타날 것입니다. 이를 해결하기 위해 RAM 을 구매합니다.
$
cleos system buyram hexlanthenry hexlanthenry "100.0000 EOS"
payer : EOS 를 지불할 계정
receiver : RAM 을 사용할 계정
amount : 지불할 EOS의 양 ( eos 1.1 기준 소수점4개 자리와 symbol을 무조건 넣어주어야 정상 동작 합니다)
계정에 contract가 잘 배포 되었는지 확인해 보겠습니다.
$
cleos get code hexlanthenry
또한 abi 를 통해서도 확인할 수 있습니다.
$
cleos get abi hexlanthenry
위 과정을 통해 해당 계정에 실제로 contract 가 잘 배포 되었는지 확인 할 수 있습니다.
다음 시간에는 배포된 contract 를 통하여 토큰을 발행 해보고 token에 대한 balance 체크 및 transfer 하는 과정을 진행해 보도록 하겠습니다.
+또한 abi를 분석하여 struct 와 action 을 어떻게 확인 하는지에 대한 자세한 방법은 다른 포스팅에서 다루도록 하겠습니다.
감사합니다.
#헥슬란트 #HEXLANT #블록체인 #개발자 #개발팀 #기술기업 #기술중심