블록체인 EOS.IO 설치 및 실행
EOS에 관련한 자료들이 그리 풍부하지 않아 반복했던 실수를 줄이고자 작성하는 내용이며
다소 정확하지 않거나 전혀 틀린 방법들이 존재할수 있음을 사전 명시합니다
작성된 내용은 작성자 본인의 학습 또는 진행의 도움을 갖고자 기록하는 기록물이니
혹시 필요하신 분들에게 있어 길라잡이가 아닌 도움말 정도로 이용해주시길 바랍니다
EOS.IO 개발자포털 바로가기 https://developers.eos.io/
EOS.IO 설치
1. 설치환경
Mem: 16G
OS: Ubuntu 18.04.1 LTS (Bionic Beaver)
Kernel: Linux 4.15.0-38-generic
2. 소스내려받기
1 | git clone https://github.com/EOSIO/eos --recursive |
해당 위치는 ~/eos 생성되었으며 클론 이후 submodule 내용들을 update 진행
3. 빌드하기
- 운영체제 별 시스템 기본 요구사항 확인(1번 yes 선택)
- 필요한 라이브러리 설치 (boost, mongodb, wasm)
- 빌드 실행
- 결과적으로, build 폴더 내부에 주요 결과물들이 생성
- ~/opt/ 사전에 해당경로 pwd 확인필수 (~/opt 자동생성 됨)
빌드진행되면 상당한 시간소요. 절대끈기가 필요 (진짜 속터짐 한숨자고 오세요 ㅋㅋ)
1 | cd eos |
-s 옵션을 통해 eosio 시스템 토큰의 심볼을 정의합니다. 소스의 시스템 토큰이 기본적으로 SYS이기에, -s EOS 옵션이 필요
아래와 같은 화면들을 만나게된다
빌드 확인
필수사항은 아니지만 빌드한 결과물 확인(시간 다량 소요됨)
우선 mongodb를 실행(~/opt 폴더 내에 빌드됨)
1 | export PATH=${HOME}/opt/mongodb/bin:$PATH |
하위 build 디렉토리에 이동하여 실행
1 | cd ~/eos/build |
전역 실행파일 생성
1 | cd ~/eos/build/programs |
중요한부분
필자가 찾아본 자료들에서는
실행파일들이 특정하위 디렉토리에 존재하기때문에 매번 해당경로를 직접지정해서 실행야하는 번거로움
때문에 아래와 같이 진행했다고들 한다
1 | cd ~/eos/build |
찾아보면 없다?! 삽질 ㅠ.ㅠ
1 | cd /usr/local/eosio/bin/ |
상기 위치에 해당하여 생성되며 전역에서 명령어가 실행되지 않는다
이삽질 덕분에 짜증이 이만저만이 아니였다… 결국 모르면 모르는 놈만 답답하지 ㅠ.ㅠ
해결방안은 2가지 이다
한가지는 - 그냥 복사해버렸다ㅋㅋㅋ 어떤문제를 야기할지 모른다
1 | sudo cp -rf /usr/local/eosio/bin/* /usr/local/bin |
또다른 한가지는 - HERE
1 | cd /usr/local/src |
필자는 두번째 방법을 추천한다.
드디어 위 과정을 통해, 어느 위치에서든 eos 관련 프로그램을 실행가능하게 됨
EOS.IO 실행
eos 의 메인이 되는 eos 노드를 실행명령
1 | nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin |
위 명령의 결과로 다음과 같이 블록이 계속 생성됨을 확인
EOS 커맨드라인 인터페이스 실행 (cleos)
cleos 를 통해 nodeos에 명령을 내리고 상태를 확인, 정보를 출력한다
1 | cleos get info |
cleos가 명령을 정상적으로 수행
실행 중인 nodeos와 올바르게 통신했음 확인한다
nodeos 의 오류 사항
어떤 문제로 인해서인지 오류를 뱉어내고 멈출때가 있는데
Docker 로의 진행에 대한 자료는 많지만 실질적인 내용이 없어 추가한다
해결방법은 블록을 다 지우고 다시 생성하는것
1 | ./nodeos --delete-all-blocks |
블록이 다 지워지면 재실행한다
1 | nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin |
ps -ef 확인된 프로세스를 kill -2로 프로세스를 죽인다. nodeos는 kill -9로 죽이면 엄청난 오류를 토하며 아예 서버를 재설치 하는게 바람직하다
그리고 최신 EOS 경우 지갑데몬이 자동으로 뜨지않아 수동설정해야한다는데
확인은 해봐야 할듯..
지갑데몬을 구성하고 cleos 로 지갑설정을 조정한다
1 | keosd --http-server-address 127.0.0.1:8900 --config-dir $HOME/eosio-wallet |
해당 디렉토리 /root/eosio-wallet/config.ini
파일이 존재하며
상위에 옵션은 설정파일에 작성하면 되지않을까?!
cleos 지갑데몬 설정 예제
1 | cleos --wallet-url http://127.0.0.1:8900 wallet create --to-console |
지갑데몬과 wallet_url 의 포트를 주의하자
명령어 귀찮아서 Shell Script를 작성
ex) restart.sh / keosd.sh / block_del.sh 등등
1 | # pwd 는 /root |
이하 권한은 755 를 부여하고 구동은 아래와같이한다
1 | chmod +x restart.sh |
상위에 거론한 kill -9으로 죽이지말고 kill -2 로 자동처리
1 | cleos wallet create # -n, --name [임의적 생성된 지갑이름] |
각각의 옵션들과 기타사항들의 도움말은 cleos --help
하자