본문 바로가기

백앤드/BlockChain

[EOS Smart Contract] Hello World 찍기

반응형

 

 

오랜만에 뵙네요.

 

C언어든, JAVA던간에 모든 프로그래밍 언어를 배울 때 공통점이 있죠

바로 Hello World

 

오늘은 EOS SmartContract 를 통해서 Hello world 를 찍어볼건데요.

 

EOS 로컬네트워크에서 트랜잭션을 발생시켜서 data에 적재시킬거에요.

그럼 지금부터 따라해볼까요? 어서 따라오세요 !!

 

 

EOS의 매뉴얼에서는 C++로 되어있어요.

그러니 C++의 기본지식은 알고 계셔야겠죠?

이 블로그에서는 따로 C++ 개념설명은 하지 않습니다.

 

 

자 아래 명령어들 보면 다 아실텐데

 

디렉토리 만들어주고, 생성한 디렉토리로 접근해서, cpp 파일 생성해주도록 합시다.

 

mkdir hello

cd ./hello

touch hello.cpp

 

 

 

자 그럼 생성한 cpp 파일에 코딩을 하기위해 에디터로 열어주도록 하구요.

저는 vi 로 사용하겠습니다.

 

 

vi hello.cpp

 

 

 

그리고 아래 소스를 코딩해주도록 합니다.

다 작성하셨으면 저장하고 파일 닫도록 합니다.

#include <eosiolib/eosio.hpp>  using namespace eosio;  class [[eosio::contract("hello")]] hello : public contract {   public:       using contract::contract;        [[eosio::action]]       void hi( name user ) {          print( "Hello, ", user);       } }; EOSIO_DISPATCH( hello, (hi))

 

코딩한 파일 이제 컴파일해서 SmartContract 를 할 수 있도록 합시다.

 

eosio-cpp -o hello.wasm hello.cpp --abigen

 

 

 

 

자 그럼 "hello.abi", "hello.cpp", "hello.wasm" 파일이 생겼구요.

이번에는 기존에 만들어놓은 EOS public 에 이름을 부여할거에요.

 

저는 여러가지 테스트해보면서 공부해보느라 어느새 public Key를 5개나 만들었네요.

 

cleos wallet keys

 

 

 

public Key 중에서 저는 가운데 것으로 사용하겠습니다.

그럼 public Key 에 이름을 부여합니다.

 

cleos create account eosio hello1 EOS61CYm1J8ApVbD16ByEN7PztCbjMuMhWxEDzyTE9em6LQfxphG7 -p eosio@active

 

 

 

등록된 이름을 사용하기 위해서 이제 EOS Cookie 에 세팅하도록 합니다.

 

cleos set contract hello1 /home/jskang/eos_contract/smartContract/hello -p hello1@active

 

 

 

이제 SmartContract 를 이용해 "안녕 세계!" 혹은 "hello world" 라고 인사할 수 있어요.

한번 해볼게요.

 

cleos push action hello hi '["jskang"]' -p hello1@active

 

 

 

 

마지막으로 하나 확인해봐도 되는거는 SmartContract 를 사

 

용해서 계약을 하잖아요.

그럼 계약한 내용정보를 바로 확인 할 수 있어요.

 

바로 트랜잭션 아이디를 통해서 말이죠.

그럼 바로 확인해볼게요.

 

바로 윗단계, 마지막 명령어를 실행하고 출력물에서

executed transaction: [ 해시값 ]

 

이런 부분이 있는데, 저 해시값이 트랜잭션 아이디입니다.

 

 

cleos get transaction 9eb2f63263793fdcff56015ecb8765589b8189570b465189c271717a2e1bd6f0

 

 

 

 

이렇게 명령어 날려주시면 방금 트랜잭션을 발생했던 기록들을 모두 정확하게 무결성하게!!!

확인이 가능합니다.

 



 

그럼 이상 포스트 마치도록 하겠습니다.

 

고생하셨습니다.

 

 

 

 

(이오스, 이오스 댑, 이오스 dapp, 스마트컨트랙트, 컨트랙트, smartcontract, contract, 이오스 개발, dapp 개발, 개발, 블록체인)

 

 

반응형