[EOS 프로그래밍]2. EOS 테스트 노드에 지갑 생성과 토큰 생성

in #kr6 years ago (edited)

이전 글

  1. EOS 컴파일하기

오늘은 EOS 테스트 노드를 부팅하고 지갑 생성, 토큰 생성까지 해보도록 합시다.
EOS는 테스트 노드를 실행하면 동작을 테스트할 토큰도 주지 않으면서 빈 블록만 생성하는 멍청한 블록체인을 만나보실 수 있습니다.
우리가 이 블록체인을 가동하기 위한 토큰을 얻기 위해서는 필요한 것은

  1. 지갑
  2. 계정
  3. 토큰을 위한 스마트 컨트랙트

정도 됩니다.


그전에 전에 쓴 EOS 컴파일 과정을 본 사람들은 nodeos를 실행하기 위한 구문들이 좀 복잡하다는 것을 알 수 있습니다.
그렇다면 우리는 작업할 때 마다 그 긴 줄을 쓸 필요없이 하기 위해 실행 스크립트 작성하겠습니다.

#/bin/sh
nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin

이 코드를 복사해서 텍스트 편집기(VI, gedit) 같은 프로그램으로 start_eos_node.sh 라는 파일로 저장하고

chmod +x eos_start_node.sh

로 명령을 주고 나서

./eos_start_node.sh

이 파일을 실행파일처럼 사용하면 노드를 실행할 수 있다.


#1 지갑

첫번째로 지갑을 만듭시다.

cleos wallet create

이 명령어 하나로 지갑이 완성되고 이 테스트 노드를 사용하는 동안에는 지갑 비번을 보관하시길 바랍니다.

그리고 eos가 있는 풀더로 가서 build 풀더로 이동 후

cleos set contract eosio contracts/eosio.bios -p eosio

실행한다.


#2 계정

참고

cleos 는 command line eos로 이오스 블록체인에 명령을 내리기 위한 툴이다.

cleos wallet keys

라는 명령어를 실행하면 자신이 쓸 수 있는 키를 확인 할 수 있습니다.
처음에는 두 개의 영어와 숫자로 이루어진 문자열을 볼 수 있습니다.
첫번째로 있는 EOS로 시작하는 문자열은 공개키입니다.
두번쨰 문자열은 비밀키 입니다.
이 키들은 계정을 만들거나 관리하기 위해서 존재합니다.

하지만 계정은 오직 두 개의 공개키를 통해서 생성할 수 있습니다.
왜냐하면 스팀잇과 같이 owner 키와 active 키로 키의 권한이 분산되어 있기 때문입니다.
하지만 여기서 이 문제를 다루기에는 여백이 부족함으로 일단 스킵하고
일단 다른 키를 생성합시다.

cleos create key

를 실행하면 private key(개인키)와 public key(공개키)가 출력 되고

cleos wallet import 개인키

이 명령 뒤에 개인키를 방금 생성한 것으로 교체하고 실행하면 이제 키를 쓸 준비가 됐다.

cleos create account eosio user 공개키1 공개키2

이 명령어 뒤에 공개키 1~2를 이미 있거나 새로 만든 공개키로 대입한다.
이 명령을 실행하면 user 계정이 생성된다.
여기서 방금 말했던 owner 키와 active 키를 공개키 1~2 순서로 된다.
스팀잇과 다르게 만들어 주는 게 아니라 사용자가 직접 만들어서 계정에 적용하는 것이 신기할 수 있다.

또 test 유저를 만들어보자. 직접~~~~


#3 토큰을 위한 스마트 컨트랙트

EOS는 특이하게 블록체인 바로 위에 토큰이 있는 Ethereum과는 다르게 ethereum erc-20 토큰처럼 자체 토큰도 스마트 계약서의 형태로 관리된다.
그리고 방금 전 지갑 파트에서 했던 아무 설명도 하지 않고 실행하라고 했던 명령어는 EOS 노드를 부팅시키기 위해서 스마트 컨트랙트를 실행하는 것이다. 즉, 블록체인의 기초 규칙도 스마트 컨트랙트의 일부로 규정되어 있다.
그래서 기존의 블록체인과는 다르게 블록 프로튜서의 3분의 2이상이 동의하면 규칙을 다른 블록체인과 다르게 쉽게 수정할 수 있게 되어있다.

지금 eosio.token 이라는 계정을 생성하고
지갑 파트에서 찾았던 build 폴더에서

cleos set contract eosio.token contracts/eosio.token -p eosio.token

를 실행한다.

이제 토큰을 생성하기 위해서 스마트 컨트랙트와 통신해야 한다.

cleos push action eosio.token create '[ "eosio", "100000000000.0000 EOS", 0, 0, 0]' -p eosio.token
cleos push action eosio.token issue '[ "eosio", "100.0000 EOS", "memo"]' -p eosio
cleos push action eosio.token transfer '[ "eosio", "user", "100.0000 EOS", "memo"] -p eosio
cleos get currency eosio.token user

이 과정의 결과를 보면 user에게 100 EOS가 있다는 것을 확인 할 수 있다. 하지만 오늘의 시간이 부족함으로 다음 시간에 설명하도록 하겠다.

Sort:  
cleos get currency eosio.token user

가 아닌

cleos get currency balance eosio.token user

로 중간에 balance 를 빼먹는 오타가 발생했습니다.

짱짱맨 호출에 출동했습니다!!

감사합니다.

Coin Marketplace

STEEM 0.16
TRX 0.17
JST 0.029
BTC 69510.55
ETH 2492.25
USDT 1.00
SBD 2.55