플밍

eosio 계정과 지갑 만들기 본문

프로그래밍/블록체인

eosio 계정과 지갑 만들기

너구리안주 2020. 8. 13. 16:44

eos는 다른 블록체인과 달리 계정과 지갑이 분리되어 있다.
1개의 지갑에 n개의 계정이 연결될 수도 있으며 1개의 지갑에 n개의 키가 등록가능하다.

지갑과 계정을 생성하는 과정을 요약하면 아래와 같다.

  1. 지갑을 생성하고
  2. 지갑에 키를 생성한 뒤
  3. 생성된 공개키를 계정에 연결해 줘야 한다.

자세히 알아보자.

1. 지갑 만들기

# cleos wallet create -n <지갑이름> --to-console

위 명령으로 생성을 하면 비밀번호가 표시된다.  이 비밀번호는 지갑내의 개인키가 아니라 지갑 그 자체의 비밀번호이다.  지갑의 명령을 수행할때 확인하므로 반드시 기록해 놔야 한다.

"-n <지갑이름>" 을 지정하지 않으면 default 지갑이 된다.

 

2. 지갑에 키 연동하기

# cleos wallet private_keys -n <지갑이름>

처음 지갑을 만들고 난뒤에 위 명령으로 키를 확인해 보면 비어있다.  지갑에 키를 연동하는 방법은 두가지 방법이 있다.

하나는 기존에 가지고 있는 키를 import 하는 방법이고 또 다른 하나는 자동으로 생성해서 연동시키는 방법이 있다.

1) 기존에 가지고 있는 키 연동하기

# cleos wallet import -n <지갑이름>
# private key:

import 명령을 내리고 private key 를 입력한다.  키 입력시 화면에 표시되지 않는다.  붙여넣기 할때는 마우스 오른쪽 버튼을 누르면 된다.

지갑은 기본적으로 15분이 지나면 자동으로 닫힌다. (~/eosio-wallet/config.ini 파일내에 unlock-timeout 항목에서 시간을 변경할 수 있다)
혹시 지갑이 닫혀 있을 경우에는 open 하고 unlock 한 다음에 다시 해보면 된다.

open 하고 unlock 하기

# cleos wallet open -n <지갑이름>
# cleos wallet unlock -n <지갑이름>
# password:

password: 는 "1. 지갑 만들기" 에서 기록한 비밀번호를 입력한다.

import 가 잘되었는지 확인한다.

# cleos wallet private_keys -n <지갑이름>

화면에 개인키와 공개키가 표시되는 걸 볼 수 있다.

2) 자동으로 생성해서 연동시키기

# cleos wallet create_key -n <지갑이름>
# password:

password: 는 "1. 지갑 만들기" 에서 기록한 비밀번호를 입력한다.

※ 지갑 삭제하기

지갑은 ~/eosio-wallet/ 경로에 <지갑이름>.wallet 로 저장되어 있다.  해당 파일을 삭제하고 아래 명령어로 keosd 데몬을 stop 시킨다.

# cleos wallet stop

시작명령은 따로 없고 cleos wallet list 와 같은 명령을 수행하면 자동으로 시작된다.

# cleos wallet list

위 명령으로 확인해보면 지갑이 삭제된 것을 확인할 수 있다.

 

3. 계정 생성과 지갑과의 연동

# cleos create account <기존계정> <새계정> <owner key> <active key>

eos는 계정을 만들때 기존의 다른 계정이 필요하다.  staking 이란 개념이 있어서인데 여기서는 다루지 않겠다.  eosio 를 설치하면 eosio 라는 이름의 시스템 계정이 존재한다.  다른 계정을 지정하지 않을것이라면 <기존계정> 에 "eosio" 를 입력한다.

<새계정> .12345abcdefghijklmnopqrstuvwxyz 만 허용하며 12자리까지 입력할 수 있다.

<owner key> 와 <active key>는 위에서 생성한 지갑내의 공개키를 입력하면 된다.  <active key> 를 생략하면 <owner key> 와 동일하게 생성된다.  두개를 다르게 하는것이 보안에 좋으며 다르게 하기 위해서는 해당지갑에 개인키/공개키 쌍이 두개가 있어야 한다.

이렇게 공개키를 지정함으로서 계정과 지갑이 연동이 된다.  계정에서 트랙잭션을 수행할때 연동된 지갑의 키로 서명을 한다.

기존에 존재하는 계정에 키를 변경하려면 아래와 같이 하면 된다.

# cleos set account permission <계정이름> active <공개키> -p <계정이름>@owner
# cleos set account permission <계정이름> owner <공개키> -p <계정이름>@owner

 

Comments