EOS 개발자 포털_CLEOS_번역본(Version 1.0) / KEOS는 EOS 메인넷의 현재 Standby BP 입니다.

in #eos6 years ago (edited)

7.png

안녕하세요 KEOS입니다.

KEOS는 EOS 메인넷의 현재 Standby BP 입니다. (EOSPortal.io에서 확인 가능, 계정명 : keoskorea111)

이번에 EOSIO 개발자 포털을 번역하게 된 계기는 더 많은 개발자들이 쉽게 EOSIO를 쓸 수 있도록 하여 EOS 생태계에 기여하고 싶어서 시작했습니다.

이 글은 KEOS가 개발자 포털의 CLEOS를 번역하였습니다.(Version 1.0)

스팀잇을 제외한 다른 플랫폼으로 퍼갈 경우, 출처를 남겨주시기 바랍니다.


1.PNG


2 - 복사본.PNG

cleos

cleos 미리보기

Cleos는 노드에 의해 노출된 REST API와 상호작용하는 명령어 행 도구 입니다. cleos를 사용하기 위해 nodeos에 end point(IP 주소 그리고 포트 넘버)를 가지는 것을 필요로 합니다. 또한, 'eosio::chain_api_plugin'를 실기 위해 cleos를 구성하는 것을 필요로 합니다. cloes는 모든 명령에 대한 문서를 포함합니다. cleos에게 알려진 모든 명령어 목록을 위해, arguments없이 간단히 실행하세요.

• Text
Command Line Interface to EOSIO Client
Usage: ./programs/cleos/cleos [OPTIONS] SUBCOMMAND

Options:
-h,--help Print this help message and exit
-u,--url TEXT=http://localhost:8888/
the http/https URL where nodeos is running
--wallet-url TEXT=http://localhost:8900/
the http/https URL where keosd is running
-r,--header pass specific HTTP header; repeat this option to pass multiple headers
-n,--no-verify don't verify peer certificate when using HTTPS
-v,--verbose output verbose actions on error

Subcommands:
version Retrieve version information
create Create various items, on and off the blockchain
get Retrieve various items and information from the blockchain
set Set or update blockchain state
transfer Transfer EOS from account to account
net Interact with local p2p network connections
wallet Interact with local wallet
sign Sign a transaction
push Push arbitrary transactions to the blockchain
multisig Multisig contract commands
system Send eosio.system contract action to the blockchain.

어떤 특정 하위 명령에 대한 도움을 얻기 위해, 또한 arguments없이 실행하세요.

• Text
Create various items, on and off the blockchain
Usage: ./cleos create SUBCOMMAND

Subcommands:
key Create a new keypair and print the public and private keys
account Create an account, buy ram, stake for bandwidth for the account

Create an account, buy ram, stake for bandwidth for the account
Usage: ./programs/cleos/cleos create account [OPTIONS] creator name OwnerKey [ActiveKey]

Positionals:
creator TEXT The name of the account creating the new account (required)
name TEXT The name of the new account (required)
OwnerKey TEXT The owner public key for the new account (required)
ActiveKey TEXT The active public key for the new account

Options:
-h,--help Print this help message and exit
-x,--expiration set the time in seconds before a transaction expires, defaults to 30s
-f,--force-unique force the transaction to be unique. this will consume extra bandwidth and remove any protections against accidently issuing the same transaction multiple times
-s,--skip-sign Specify if unlocked wallet keys should be used to sign transaction
-j,--json print result as json
-d,--dont-broadcast don't broadcast transaction to the network (just print to stdout)
-r,--ref-block TEXT set the reference block num or block id used for TAPOS (Transaction as Proof-of-Stake)
-p,--permission TEXT ... An account and permission level to authorize, as in 'account@permission'
--max-cpu-usage-ms UINT set an upper limit on the milliseconds of cpu usage budget, for the execution of the transaction (defaults to 0 which means no limit)
--max-net-usage UINT set an upper limit on the net usage budget, in bytes, for the transaction (defaults to 0 which means no limit)


계정과 지갑에 대한 종합적인 안내서

참고 : 이 튜토리얼은 프라이빗 싱글 노드 테스트넷에서 사용하도록 맞추어졌지만, 조금의 수정을 통해 퍼블릭 테스트넷에서 작동할 것입니다.

소개

튜토리얼

이 튜토리얼은 지갑과 계정 관리와 지갑과 계정을 관리할 cleos를 어떻게 사용하는 지와 어떻게 서로 지갑과 계정 관리 EOSIO 구성요소가 상호 작동하는 지에 대해 배우기를 원하는 사용자를 위한 것입니다. 추가적인 정보는 명령 참조를 통해 찾을 수 있습니다.

배울 것

어떻게 지갑, 키를 만들지 배울 것이고, cleos를 통해 블록체인과 함께 상호작용할 지갑을 사용하세요. 그리고 나서, cleos를 사용하여 어떻게 계정을 만들지 배울 것입니다. 이 튜토리얼은 블록체인에 게시된 컨텐츠에 서명할 cleos, keosd, 그리고 nodeos사이에서 몇 가지 상호작용을 소개할 것입니다.

전제 조건

· 시스템에서 cloes와 keosd의 사본을 만들고 실행하세요.

· 시스템에서 nodeos의 사본을 만들고 실행할 준비를 하세요.

· 명령어 행 인터페이스의 기본 이해

참고 : docker가 설치〮적용되었을 때, 명령은 약간의 수정이 필요로 합니다.


EOSIO 계정 및 지갑 구상 개요

아래의 표는 EOSIO에서 계정과 지갑의 간단한 개념적인 뷰를 제공합니다. 반면에, 다르게 지원되는 배포 구성이 있습니다. 이 뷰는 이 튜토리얼을 위해 사용할 하나의 것(cleos, keosd, nodeos 중 하나)과 일치합니다.

ㅇㄴㄻㅇㄴ.png

지갑은 퍼블릭, 프라이빗 키 쌍의 저장소로서 생각될 수 있습니다. 키 쌍은 블록체인 위에서 수행되는 운영에 서명할 필요가 있습니다. 지갑과 그것의 내용물은 keosd에 의해 관리됩니다. 지갑은 cleos 사용을 통해 접근 가능합니다.

계정은 보안 원리와 관련된 접근 허가를 가지는 온체인 식별기로서 생각될 수 있습니다. Nodeos는 계정과 블록체인 위에서 계정과 관련된 행동의 퍼블리싱(게시)을 관리합니다. nodeos의 계정 관리 능력은 또한 cleos를 사용하는 것에 의해 접근됩니다.

계정과 지갑 사이에는 고유한 관계가 없습니다. 계정은 지갑에 대해 알지 못 합니다. 반대의 경우도 마찬가지 입니다. 따라서, nodeos와 keosd 사이에 고유한 관계가 없습니다. 기본 기능은 근본적으로 다릅니다.(그렇게 말하면서, 구별을 흐리게 하는 구성 배포가 있습니다. 그러나, 그 주제는 튜토리얼의 범위를 벗어납니다.)

중첩이 발생하는 곳에 서명이 필요로 하는 경우, 예를 들어 거래 서명하는 경우입니다. 그 지갑은 락이 걸릴 수 있는 암화된 저장소 내부에 키를 로컬에 저장하는 것에 의한 안전한 방식으로 서명을 얻는 것을 용이하게 합니다. cleos는 keosd 키 검색 운영과 이러한 키를 사용하는 것이 생성된 서명을 필요로 하는 nodes 계정 (그리고 다른) 블록체인 메시지 사이에서 효과적으로 중개인 역할을 제공합니다.


지갑 만들기 그리고 관리하기

터미널을 열고 EOSIO로 만들어진 디렉토리로 변경하세요. 이것은 nodeos와 keosd와 함께 상호작용하기 위한 명령어 행 인터페이스인 cleos와 함께 상호작용하는 것을 더 쉽게 만들 것입니다.

Cleos가 상호작용할 keos를 instance하는 경우가 필요하다는 것을 참고 하세요.

그리고, 하위 명령으로 처음 실행 할 때, keosd의 instance가 시작할 것입니다.

• Shell
cd /path_to_eos/build/programs/cleos

필요로 할 첫 번째는 지갑을 만드는 것입니다. cleos의 wallet create 명령어를 사용하세요.

• Shell
$ cleos wallet create
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"A MASTER PASSWORD"

기본으로 불리는 지갑은 이제 keosd 내부에 있으며 이 지갑에 대한 최종 비밀번호로 바뀌었습니다. 안전한 어딘가에 이 비밀번호를 저장하는 것을 확실히 하세요. 이 비밀번호는 지갑 file의 잠금을 해제하기 위해(비암호화) 사용됩니다.

이 지갑에 대한 파일은 default.wallet으로 이름이 지어졌습니다. 이러한 기본에 의해, keosd는 ~/eosio-wallet폴더에 지갑을 저장합니다. 지갑 데이터 폴더의 주소는 --data-dir argument를 사용하는 명령어 행 위에서 명시화될 수 있습니다.

다중 지갑과 지갑 이름 관리

Cleos는 다중 지갑을 관리할 능력이 있습니다. 각각의 개인 지갑은 다른 지갑 최종 비밀번호에 의해 보호됩니다. 아래의 예는 다른 지갑을 만들고 –n arguments를 사용하는 것에 의해 어떻게 그 이름을 지을 지 보여줍니다.

• Shell
$ cleos wallet create -n periwinkle
Creating wallet: periwinkle
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"A MASTER PASSWORD"

이제 선택한 이름으로 만들어진 지갑을 확인하세요.

• Shell
$ cleos wallet list
Wallets:
[
"default *",
"periwinkle *"

각각의 지갑에 등록한 후 별표가 있는지 알아차리는 것이 중요합니다. 이것은 대표 지갑이 잠겨있지 않은 것을 의미합니다. create wallet을 사용할 때, 그 결과 지갑은 편리함을 위한 기본 설정에 의해 잠겨있지 않습니다.

wallet lock을 사용한 두 번째 지갑을 잠그세요.

• Shell
$ cleos wallet lock -n periwinkle
Locked: 'periwinkle'

지갑 목록을 다시 실행하면, 별표가 사라진 것을 볼 수 있습니다. 그것은 지갑이 새로 잠긴 것을 의미합니다.

• Text
$ cleos wallet list
Wallets:
[
"default *",
"periwinkle"
]

이름이 지어진 지갑의 잠금을 해제하는 것은 지갑의 이름에 의한 –n 매개 변수와 함께 wallet unlock을 부르는 것을 수반합니다. 그리고 나서 비밀번호 프롬프트(운영 체제에서 사용자에게 보내는 메시지)에 지갑의 최종 비밀번호를 입력합니다. 만들었던 두 번째 지갑에 최종 키를 취득하세요. 그 비밀번호 프롬프트가 나타날 때, 아래 명령어를 실행하세요. 그리고 붙이고 enter를 눌러세요. 확인과 함께 나타나질 것입니다.

• Shell
$ cleos wallet unlock -n periwinkle
C

periwinkle wallet은 별표에 의해 표시됩니다. 그래서 이제 잠금 해제됩니다.

참고 : 지갑 명령어를 사용한 기본적인 지갑과 함께 상호작용하는 것은 –n 매개변수를 필요로하지 않습니다.

이제, keosd를 멈추고나서 cleos를 불렀던 곳으로 가서 다음의 명령어를 실행하세요.(cleos가 keosd를 실행시키지 확인하고 그렇지 않으면 인스턴스(Instance)를 시작할 것입니다.)

• Shell
$ cleos wallet list
Wallets:
[]

지갑이 작동되기 전에 지갑을 처음에 열어야 합니다. 그래서 목록을 포함할 수 있습니다. Keosd를 종료시킬 때, 지갑은 잠금 상태가 됩니다. keosd가 다시 시작될 때, 지갑은 열리지 않습니다. 지갑을 열기 위해 다음의 명령어를 실행하고 기본적인 지갑을 목록화시키세요.

• Shell
$ cleos wallet open
$ cleos wallet list
Wallets:
[
"default"
]

참고 : 명명화된 지갑을 열기를 원했다면, $ cleos wallet open -n periwinkle를 실행했을 것입니다.

기본 지갑이 기본 설정에 의해 잠겨진 마지막 응답을 알아차릴 것입니다. 이제 지갑을 잠금 해제하세요. 이제 다음 단계가 필요할 것입니다.

wallet unlock명령어를 실행시키고 암호 프롬프트가 나타날 때, 당신의 기본 지갑의 최종 키를 붙여 넣으세요.

• Shell
$ cleos wallet unlock
Unlocked: 'default'

지갑이 잠금 해제된 것을 확인하세요.

• Shell
$ cleos wallet list
Wallets:
[
"default *"
]

지갑은 별포에 의해 동반됩니다.(별표가 따라 붙습니다.) 그래서 그것은 잠금 해제가 됩니다.

지금까지 어떻게 다중 지갑을 만드는 지 배웠습니다. 그리고 cleos안에서 다중지갑과 상호하는 지에 대해서도요. 그러나, 빈 지갑은 그러한 것을 많이 하지는 않습니다. 우리는 키를 지갑 안으로 가져오는 것을 배울 것입니다.


EOSIO 키를 생성하고 가져오기

EOSIO 키 쌍을 생성할 몇 가지 방법이 있습니다. 하지만, 이 튜토리얼은 cleos안에서 create key 명령어에 대해 집중할 것입니다.

2개의 public/private 키 쌍을 생성하세요. 키의 일반적인 형식을 참고하세요.

• Shell
$ cleos create key
Private key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public key: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$ cleos create key
Private key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public key: EOSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

당신은 이제 2개의 EOSIO 키쌍을 가졌습니다. 이 시점에서, 이것들은 그냥 임의의 키쌍입니다 그리고 그들 자신은 권한이 없습니다.

만약 당신이 이전의 모든 절차들을 따라갔다면, 기본 지갑은 열려지고 잠금 해제가 될 것입니다.

다음 단계에서, 우리는 private 키를 지갑 안으로 가져올 것입니다. 이것을 하기 위해, 먼저 생성되었던 각각의 private key를 한 번 씩 입력하고 wallet import를 두 번 실행하세요.

• Shell
$ cleos wallet import ${private_key_1}

그리고 나서 2번 째 private 키를 다시

• Shell
$ cleos wallet import ${private_key_2}

만약 성공한다면, 각각의 시간에서 wallet import 명령어는 private key와 일치하는 public 키와 반응합니다. 당신의 console은 이것처럼 보여야 합니다.

• Shell
$ cleos wallet import 5Hvgh37WMCWAc4GuyRBiFrk4SArCnSQVMhNtEQVoszhBh6RgdWr
imported private key for: EOS84jJqXj5XBz3RqLreXZCMxXRKspUadXg3AVy8eb5J2axj8cywc

우리는 wallet keys로 불리는 것에 의해 키가 불러오진 것을 확인할 수 있습니다.

• Shell
$ cleos wallet keys
[[
"EOS6....",
"5KQwr..."
],
[
"EOS3....",
"5Ks0e..."
]
]

지갑 백업하기

이제 지갑에 키가 포함되어있습니다. 지갑 파일의 분실을 방지하기 위해 플래시(flash) 드라이브나 다른 미디어에 지갑을 백업하는 습관은 좋은 것입니다. 비밀번호 없이, 그 지갑 파일은 높은 예측불허하게 암호화되어 있습니다. 그리고 안에 있는 키는 접근 하기에 엄청 어렵습니다.(어떤 합리적인 수단에 의해서도 일어나지 않을 것 같은

지갑 파일은 data-dir 에서 찾을 수 있습니다. 만약 EOS를 런칭할 때 --data-dir 매개변수를 특정화하지 않았다면, 지갑 파일은 ~/eosio-wallet에 저장될 것입니다.

• Text
$ cd ~/eosio-wallet && ls
blockchain blocks config.ini default.wallet periwinkle.wallet

만약 이 튜토리얼의 절차를 지금까지 따라왔었다면, 2개의 파일을 가질 것입니다.

default.wallet 그리고 periwinkle.wallet

안전한 장소에 이 파일들을 보관하세요.

계정 만들기

블록체인에서 메시지를 보내는 것은 계정의 사용이 필요로 합니다. 우리는 nodeos가 블록체인에서 계정을 만들고 퍼블리시(publish, 게시)하는 것을 요청하기 위해 cleos를 사용합니다. 튜토리얼을 하는 이 시점에서, nodeos를 시작할 필요가 있습니다. 다음의 명령어는 싱글 노드 테스트넷을 시작시킬 것입니다. 로컬 환경 설정에 대한 더 많은 것을 위해 싱글 노드 테스트넷을 만들고 런칭하는 것을 보세요.

튜토리얼의 이 부분에서, 우리는 keosd와 nodeos를 동시에 실행시킬 것을 필요로 합니다. 현재, 그 기본적인 포트는 keos와 nodeos는 같습니다(port 8888). 튜토리얼의 이 부분에서 nodeos를 실행하는 것을 간다하게 하기 위해, 우리는 keosd의 포트를 8899로 바꿀 것입니다. 우리가 이것을 할 수 있는 2가지 방법이 있습니다.

1). Keosd 구성 파일(~/eosio-wallet/config.ini)을 변경하세요. 그리고 http-server-address 속성을 바꾸세요.

http-server-address = 127.0.0.1:8899

2. 명령어 행 argument를 사용한 keosd를 시작하세요.

--http-server-address=localhost:8899

3. 명령어 행 argument를 사용한 keosd를 재시작하세요.

• Text
$ pkill keosd
$ keosd --http-server-address=localhost:8899

기본 지갑을 잠금 해제 하세요.(keosd가 다시 시작될 때 잠금 해제됩니다.) keosd가 port 8899에서 불려오지는 이후로, --wallet-port command line argument to cleos 사용해야할 필요가 있을 것입니다.

cleos --wallet-port=8899 wallet unlock

지갑이 만들어지고 비밀번호를 묻는 메시지가 나타날 때, 이전 섹션에서 생성된 지갑 비밀번호를 입력하세요.

nodeos를 시작하기 위해, 새로운 터미널 창을 열고, 실행 가능한 nodeos를 포함하는 폴더로 가서 다음을 실행시키세요.

• Shell
$ cd eos/build/programs/nodeos
$ nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin

이제 우리는 계정을 만들 수 있습니다. 여기에 cleos create account 명령어 구조가 있습니다.

• Shell
$ cleos create account ${authorizing_account} ${new_account} ${owner_key} ${active_key}

authorizing_account : 계정 생성에 자금을 지원할 계정의 이름이고, 그 후에 새 계정입니다.

new_account : 생성하기를 원하는 계정의 이름

owner_key : 계정의 소유주 권한이 배정된 public key

active_key : 계정의 active 권한이 배정된 public key

이 튜토리얼에 있어서, EOSIO는 권한이 있는 계정입니다. 블록체인에서 수행된 메시지는 eosio 계정과 관련된 키를 사용하는 것으로 서명되어야 합니다. eosio 계정은 부트스트랩 EOSIO 노드에 사용된 특별한 계정입니다. 이 계정을 위한 키는 노드 구성 파일에서 찾을 수 있습니다. Linux 플랫폼에서 ~/.local/shared/eosio/config/config.ini에 그리고 MacOS에서는 ~/Libraries/Application Support/eosio/nodeos/config/config.ini에 위치합니다.

새로운 계정을 위한 이름이 필요로 합니다. 계정 이름은 다음의 가이드 라인을 따라야 합니다.

· 13자보다 작아야 합니다.

· 다음의 심볼만 포함할 수 있습니다. : 12345abcdefghijklmnopqrstuvwxyz

우리는 새 계정을 위해 “myaccount”이름을 사용할 것입니다.

우리는 위에서 생성하고 지갑으로 전송했던 public key를 사용할 것입니다. (public key는 EOS와 함께 시작하는 것을 상기하세요.) 권한을 키에 할당하기 전 까지 키는 임의적인 상태입니다. 그러나, 할당이 되면, 임무를 기억하는 것이 중요합니다. 소유자 키는 당신의 계정 통제에 대해 동일하므로 액티브 키는 당신의 계정 자금에 대한 완전한 접근과 동일합니다.

계정을 생성하기 위해 cleos create account를 사용하세요.

• Shell
$ cleos --wallet-url=http://localhost:8899 create account eosio myaccount ${public_key_1} ${public_key_2}

만약 성공한다면, 다음과 비슷한 결과물을 볼 것입니다.

• Shell
executed transaction: 7f1c6b87cd6573365a7bb3c6aa12f8162c3373d57d148f63f2a2d3373ad2fd54 352 bytes 102400 cycles
123132123132.PNG eosio <= eosio::newaccount {"creator":"eosio","name":"myaccount","owner":{"threshold":1,"keys":[{"key":"EOS5kkAs8HZ88m2N7iZWy4J...


기본적이지 않은 호스트/포트에 연결

Cleos는 --url 또는 --wallet-url 에 의해 다른 노드에 연결될 수 있습니다.

명령어

Nodeos에 연결하기

• Shell
cleos --url http://localhost:8888 ${subcommand}

Keosd에 연결하기

• Shell
cleos --wallet-url http://test1.eos.io:8888 ${subcommand}

주의 사항

--url 또는 --wallet-url는 바람직한 노드와 상호작용하기 위한 명령어를 수행하기 위해 cleos의 각각의 실행으로 사용되는 것이 필요로 합니다.

keosd는 cleos에 의해 자동적으로 사용됩니다.

개발과 테스트가 진행 중일 때, keosd는 cleos가 아닌 것에 의해 수동으로 시작되는 것이 가능합니다. 그리고 다중 keos 프로세스 실행으로 종료시킵니다. Keosd의 다중 인스턴스가 같은 서버에서 실행될 때, cleos 명령어가 옳은 키 셋트를 찾을 수 없는 것을 찾지 못할 수 있습니다. keosd의 다중 인스턴스가 실행되는 지 그리고 무슨 포트가 그것들을 실행하는 지를 확인하기 위해, 사용에 있어서 keosd 프로세스와 포트를 격리시킬 다음과 같은 것을 시도할 수 있습니다.

$ pgrep keosd | xargs printf " -p %d" | xargs lsof -Pani
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
keosd 49590 tutorial 6u IPv4 0x72cd8ccf8c2c2d03 0t0 TCP 127.0.0.1:8900 (LISTEN)
keosd 62812 tutorial 7u IPv4 0x72cd8ccf90428783 0t0 TCP 127.0.0.1:8899 (LISTEN)


다음에 올릴 글은 EOS 개발자 포털 KEOSD 번역본(Version 1.0)입니다.

더 좋은 글로 찾아뵙겠습니다.


Team KEOS

Website : https://www.keos.kr/

Steemit : https://steemit.com/@keos

Medium : https://medium.com/@keos

Telegram (English) : https://t.me/keos_official_en

Telegram (Korean) : https://t.me/keos_official_kr

Sort:  

감사합니다 꾸벅

• Shell $ cd eos/build/programs/nodeos $ nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin #### 이제 우리는 계정을 만들 수 있습니다

I like this place. I'm inspired to write a post based on this quote.