EOS 개발자 포털_BUILDING EOSIO_번역본(Version 1.0)

in #eos3 years ago

7.png

안녕하세요 KEOS입니다.

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

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

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


1.PNG


2.PNG

EOSIO 구축하기

코드 얻기

모든 코드를 다운로드하기 위해, eos 저장소와 eos 하위 모듈을 복제하세요.

• Shell
git clone https://github.com/EOSIO/eos --recursive

만약 저장소가 --recursive 플래그 없이 복제되었다면, 그 하위 모듈은 Repo 내에서 이 명령어 실행에 의한 그 사실로부터 검색될 수 있습니다.

• Shell
git submodule update --init --recursive

EOSIO 문서와 튜토리얼 전반에 걸쳐, EOSIO 자원 저장소의 최상위 수준으로 참조가 이루어질 것입니다. Eos 저장소를 복제했던 그 위치가 그 위치입니다. ${EOSIO_SOURCE} 표기법은 같은 것을 표기합니다. 예를 들어, 만약 ~/myprojects로 불리는 폴더에 있는 git clone 운영을 실행시키고자 한다면, ${EOSIO_SOURCE}=~/myprojects/eos입니다.

참고 : ${EOSIO_SOURCE}는 오직 표기법상의 목적을 위한 문서에 사용됩니다. 환경 변수는 함축되거나 필요로하지 않습니다.

더 흔히, 간단함을 위해 이것과 다른 문서는 간단히 eos에 참조될 수 있습니다. 이것은 ${EOSIO_SOURCE}와 동일합니다.


옵션을 만드세요.

EOSIO는 다양한 경로로 몇몇의 플랫폼 위에서 만들어질 수 있습니다. 다수의 사용자는 autobild script 또는 docker를 사용하는 것을 선호할 것입니다. 반면에 더 고급 사용자들 또는 public 노드를 전개하는 것을 원하는 사용자들은 수동적인 방법을 바랄 지도 모릅니다. 그 빌드(build)는 eos/build 폴더에 컨텐츠를 놓습니다. 실행 가능한 파일들은 eos/build/programs 하위 폴더에서 찾을 수 있습니다.

● Autobuild Script : 다수의 개발자에게 적합, 이 script는 Mac OS와 Linux의 많은 선호에서 지어졌습니다.

● Docker : 지금까지 가장 빠른 설치 방법에 의해, 수 분 안에 노드를 가질 수 있고 실행시킬 수 있습니다. 원활하게 실행되고 제공된 튜토리얼을 따라갈 개발을 위한 몇 가지 로컬 구성이 필요합니다.

● Manual Build : autobuild 스크립트에 적대적일 수 있는 환경을 가지거나 빌드에서 많은 통제를 행사하기를 원하는 운영자에게 적합합니다.

● 실행 가능한 파일을 설치 : 개발자에게 친숙한 로컬 개발을 만드는 선택적인 make install 단계

시스템 필요 사항(모든 플랫폼)

● 7GB RAM

● 20GB Disk


Autobuild Script

자동화된 build script

모든 종속성과 build EOSIO를 설치할 수 있는 자동화된 build script가 있습니다. script는 다음의 운영 체계를 지원합니다.

우리는 미래의 배포에 있어서 다른 Linux/Unix 분배를 지원하기 위해 일하고 있습니다.

1. Amazon 2017.07 and higher

2. Centos 7

3. Fedora 25 and higher (Fedora 27 recommended)

4. Mint 18

5. Ubuntu 16.04 (Ubuntu 16.10 recommended)

6. MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended)

Eos 폴더로부터 build script를 실행시키세요.

cd eos
./eosio_build.sh


Docker-Compose

Docker에서 실행하세요.

Docker에서 EOS.IO의 간단하고 빠른 설치는 또한 이용 가능합니다.

종속성 설치

● Docker 17.05 또는 그 이상이 필요로 합니다.

● Docker-compose 버전 1.10.0

Docker 필요 사항

● 최소 7GB RAM (Docker->Preferences>Advanced>Memory>7GB 또는 그 이상의)

● 만약 그 빌드가 실패한다면, Docker 메모리 설정을 적용했었던 것을 확실히 하고 다시 시도해보세요.

EOS image를 빌드하세요.

git clone https://github.com/EOSIO/eos.git --recursive --depth 1
cd eos/Docker
docker build . -t eosio/eos

만약 특정한 branch/tag를 목표로 하기를 원한다면, build argument를 사용할 수 있습니다. 만약 v1.00 tag를 기반으로 docker 이미지를 생성하기를 원한다면, 다음의 것을 사용할 수 있습니다.

docker build -t eosio/eos:v1.0.0 --build-arg branch=v1.0.0 .

기본 설정에 의해, eosio 시스템에서 그 심볼(symbol)은 SYS로 설정되어 있습니다.

docker build -t eosio/eos --build-arg symbol=dfvcz.PNG

nodeos docker container만 실행하세요.

docker run --name nodeos -p 8888:8888 -p 9876:9876 -t eosio/eos nodeosd.sh -e arg1 arg2

기본 설정에 의해, 모든 데이터는 docker volume에서 끊임없이 계속됩니다. 만약 데이터가 오래되거나 변질된다면 삭제될 수 있습니다.

$ docker inspect --format '{{ range .Mounts }}{{ .Name }} {{ end }}' nodeos
fdc265730a4f697346fa8b078c176e315b959e79365fc9cbd11f090ea0cb5cbc
$ docker volume rm fdc265730a4f697346fa8b078c176e315b959e79365fc9cbd11f090ea0cb5cbc

대안적으로, host directory를 container에 직접 시작할 수 있습니다.

docker run --name nodeos -v /path-to-data-dir:/opt/eosio/bin/data-dir -p 8888:8888 -p 9876:9876 -t eosio/eos nodeosd.sh -e arg1 arg2

체인 정보를 얻으세요.

curl http://127.0.0.1:8888/v1/chain/get_info

nodeos와 keosd containers 둘 다 시작하세요.

docker volume create --name=nodeos-data-volume
docker volume create --name=keosd-data-volume
docker-compose up -d

docker-compose up –d 후에, nodeosd와 keosd로 이름이 불리는 2개의 서비스가 시작될 것입니다. nodeos 서비스는 포트 8888과 9876을 호스트에게 노출시킬 것입니다. keosd 서비스는 어떤 포트도 호스트에게 노출시키지 않습니다. “cleos 명령어 실행”에서 설명한대로 운영 중인 cleos가 keosd에서 운영 중일 때 오직 cleos에게 접근 가능합니다.

cleos 명령어를 실행하세요.

Bash alias를 통해 cleos 명령어를 실행할 수 있습니다.

alias cleos='docker-compose exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900'
cleos get info
cleos get account inita

샘플 교환 계약을 업로드하세요.

cleos set contract exchange contracts/exchange/exchange.wast contracts/exchange/exchange.abi

만약 나중에 keosd가 필요하지 않으면, keosd 서비스를 사용하는 것을 멈출 수 있습니다.

docker-compose stop keosd

고객 계약 개발/빌드

eosio/eo 계약 개발을 위한 필요로 하는 종속성을 포함하지 않는 사실 때문에(이것은 설계에 의한 것입니다, 이미지 사이즈를 작게 유지하기 위해), eosio/eos-개발자 이미지를 이용하는 것을 필요로 할 것입니다. 이 이미지는 eosiocpp를 사용하는 계약을 빌드하기 위해 필요로 하는 바이너리와 종속성을 포함합니다.

Docker Hub에서 이용 가능한 이미지를 사용하거나 개발자 폴더로 이동하여 수동으로 이미지를 빌드할 수 있습니다.

cd dev
docker build -t eosio/eos-dev .

기본 구성 변경

기본 구성을 변경하기 위해 Docker 구성 override file을 사용할 수 있습니다. 예를 들어, 다음의 컨텐츠와 함께 config2.ini 그리고 docker-compose.override.yml 대안 구성 파일을 만드세요.

version: "2"

services:
nodeos:
volumes:
- nodeos-data-volume:/opt/eosio/bin/data-dir
- ./config2.ini:/opt/eosio/bin/data-dir/config.ini

docker containers를 다음과 같이 재시작하세요.

docker-compose down
docker-compose up

데이터 지우기

Docker-구성에 의해 생성된 데이터 부피는 다음과 같이 지워질 수 있습니다.

Docker Hub

docekr hub로부터 이용 가능한 Docker Hub 이미지.

아래의 컨텐츠와 함께 새 docker-compose.yaml 파일을 만드세요.

version: "3"

services:
nodeosd:
image: eosio/eos:latest
command: /opt/eosio/bin/nodeosd.sh --data-dir /opt/eosio/bin/data-dir -e
hostname: nodeosd
ports:
- 8888:8888
- 9876:9876
expose:
- "8888"
volumes:
- nodeos-data-volume:/opt/eosio/bin/data-dir

keosd:
image: eosio/eos:latest
command: /opt/eosio/bin/keosd --wallet-dir /opt/eosio/bin/data-dir --http-server-address=127.0.0.1:8900
hostname: keosd
links:
- nodeosd
volumes:
- keosd-data-volume:/opt/eosio/bin/data-dir

volumes:
nodeos-data-volume:
keosd-data-volume:

참고 : 기본 버전은 최신의 것입니다. 원한다면 그것을 바꿀 수 있습니다.

실행 docker pull eosio/eos:latest

실행 docker-compose up

EOSIO 1.0 테스트넷

docker 이미지를 사용하는 EOSIO 1.0 현지 테스트넷을 쉽게 설치할 수 있습니다. 그냥 다음의 명령어를 실행하세요.

참고 : 만약 mongo 유 플러그인을 사용하기를 원하면, 그것을 처음에 data-dir/config.ini에서 활성화시키세요.

12d.PNG pull images
docker pull eosio/eos:v1.0.0

12d.PNG create volume
docker volume create --name=nodeos-data-volume
docker volume create --name=keosd-data-volume
12d.PNG start containers
docker-compose -f docker-compose-eosio1.0.yaml up -d
12d.PNG get chain info
curl http://127.0.0.1:8888/v1/chain/get_info
12d.PNG get logs
docker-compose logs -f nodeosd
12d.PNG stop containers
docker-compose -f docker-compose-eosio1.0.yaml down

기본 설정에 의한 --data-dir 아래에 블록 데이터는 저장됩니다. 그리고 그 지갑은 기본 설정에 의해 --wallet-dir 아래에 저장됩니다. 물론 원한다면 이러한 것을 바꿀 수 있습니다.

MongoDB 플러그인에 대해

현재, mongodb 플러그인은 기본 설정에 의해 config.ini에서 이용 가능하지 않습니다. 기본 설정에 의해, config.in에서 수동으로 그것을 바꿔야 하거나 docker-구성 파일에서 /opt/eosio/bin/data-dir/config.ini로 config.in 파일을 시작할 수 있습니다.

수동으로 빌드하기

수동으로 빌드하기 위해, eos folder에서 build폴더를 만들기 위해 다음의 단계들을 따르세요. 그리고 나서 빌드를 형성하세요. 아래의 단계는 eos 저장소가 home (예를 들어, ~)폴더에 복제된 것을 가정합니다. 이것은 또한 필요한 종속성이 설치된 것을 가정합니다. 종속성의 수동 설치를 보세요.

cd ~
mkdir -p ~/eos/build && cd ~/eos/build

Linux 플랫폼에서 이 cmake 명령어를 사용하세요.

cmake -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=~/wasm-compiler/llvm -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DBUILD_MONGO_DB_PLUGIN=true ..

MacOS에서 이 cmake 명령어를 사용하세요.

cmake -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=/usr/local/wasm -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DBUILD_MONGO_DB_PLUGIN=true ..

그런 다음 모든 플랫폼에서

make -j$( nproc )

외부 소스 또한 지원됩니다. 컴파일러에서 clang의 기본 설정을 무시하기 위해, CMake 명령어 플래그를 추가하세요.

-DCMAKE_CXX_COMPILER=/path/to/c++ -DCMAKE_C_COMPILER=/path/to/cc

디버그 빌드를 위해, -DCMAKE_BUILD_TYPE=Debug 추가하세요. 다른 공통된 빌드 종류들은 Release와 RelWithDebInfo를 포함합니다.

실행 가능한 파일은 설치하세요.

계약 개발을 쉽게 하기 위해, 컨텐츠는 make install 목표를 사용하는 /usr/local 폴더에 설치될 수 있습니다. 이 단계는 build 폴더로부터 운영됩니다. 설치하기 위해 적절한 허락이 필요로 합니다.

cd build
sudo make install


유효성 확인 빌드

선택적으로, 일련의 테스트는 몇 가지 기본 유효성 검사를 수행할 빌드에서 실행될 수 있습니다. 빌딩 후 테스트 스위트(suite, 묶음)를 실행하기 위해, mongod를 시작하고 make test를 실행하세요.

Linux 플랫폼에서

~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf &

MacOS에서

/usr/local/bin/mongod -f /usr/local/etc/mongod.conf &

모든 플랫폼에 의해 다음을 수행하세요.

cd build
make test


다음에 올릴 글은 EOS 개발자 포털 SETUP NODEOS 번역본(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:  

와... 너무 수고하셨습니다! 더 많은 분들이 이 좋은 글 접할 수 있게 리스팀합니다 :)

감사합니다 활기찬 오후되세요!

로컬에서 돌리고 싶네요 저도

로컬 환경 갖추기 어렵죠 ㅎㅎ