[EOS 프로그래밍]EOS 컴파일하기

in #kr6 years ago (edited)

안녕하십니까.
오늘은 EOS를 빌드를 해보도록 합시다.

#1 준비물

준비물로는 리눅스가 설치되어 있는 램 최소 16기가 컴퓨터가 필요로 합니다.
큰 프로그램을 빌드할 때는 램이 많이 필요합니다.

대체제로는 EOS의 공식 도커 이미지가 도커 허브에 올라와 있으므로 그것을 사용하라고 말하고 싶지만 구조가 어떻게 되어있는지 파악이 안되고 아직 EOS wiki에 나와있는 도커 사용법이 빌드해서 쓰라는 것 밖에 없기에 그냥 바이너리 빌드가 안전하다고 생각됩니다.

주의사항

현재 이오스에 호환되는 운영체제는

Amazon 2017.09 and higher.
Centos 7.
Fedora 25 and higher (Fedora 27 recommended).
Mint 18.
Ubuntu 16.04 (Ubuntu 16.10 recommended).
MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended).

이렇게 다 유닉스 기반이고 주로 리눅스를 통해 사용할 수 있습니다.
여기에 포함되어 있는 운영체제는 빌드 스크립트가 환경에 맞는 패키지 관리자를 실행해 의존성을 해소하고 바로 빌드를 진행합니다.
(경험담) Ubuntu 16.04와 Mint Linux 는 apt-get 인수 설정 문제로 깔리지 않는 패키지만 수동으로 설치해주면 나머지는 자동으로 처리해줍니다.
(경험담) 16 기가 미만이면 스왑을 설정해줍시다. 초반에는 램을 4기가에서 7기가까지 먹다가 후반가면 갑자기 많이 먹기 때문에 반드시 설정하시길 바랍니다. 빌드가 중단되어도 그 지점에서 다시 시작하지만 귀찮니즘이 발동되기 떄문에 조심....

요약 : 위의 목록에 있는 운영체제로만 설치하라. 우분투와 민트 리눅스는 에러나는 패키지를 수동으로 설치하면 된다. 그리고 스왑 설정 후 빌드!

#2 과정

  1. 자신이 사용하는 리눅스에 맞게 git를 설치합니다.
  2. git clone https://github.com/EOSIO/eos --recursive
    
  3. 주의사항 : 뒤에 --recursive 를 입력을 하지 않았다? eos 풀더로 이동해서 git submodule update --init --recursive 실행
  4. 생성된 eos 폴더로 이동합니다.
  5. ./eos_build.sh
    
  6. 설명에 따라서 하고 우분투나 민트 리눅스는 apt-get 관련 오류가 뜰 것 인데 필요한 패키지를 확인해서 수동으로 설치하고 스크립트를 다시 실행하라
  7. ~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf &
    
  8. cd build; make test
    
  9. 성공시 축하드립니다. 안되시면 다시 한번 재시도해보세요. 가끔 멀쩡한데 실패할 수도 있어서요.
  10. 이제 sudo make install 를 실행해서 바이너리를 설치하고
  11. nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin 
    

터미널에서 지속적으로 블록을 생성하면 crtl(컨트롤) + c 로 종료하시고 11 번 명령어를 스크립트로 작성하셔서 사용하거나 실행할 때 매번 입력하면 됩니다. 그리고 강제 종료하면 테스트 노드지만 재동기화 작업을 해야하기 때문에 귀찮은 면이 있기 때문에 컨트롤 + C(터미널에서 프로그램 종료)를 통해서 종료하는 겁니다.

#3 다음 예고

EOS에서만 만날 수 있는 독특한 스마트계약서를 테스트 노드를 '부팅' 시키면서 배워보도록 합시다.
여러분도 좋은 하루 보내세요.

Sort:  

무거운 3D 작업을 하는 정도군요. ㅋㅋㅋ 다음편도 기대되네요.

감사합니다!

요새 블록체인을 개발 공부해볼까 했는데 좋은 글 감사합니다 다음편도 기대할께요

쉽지만은 않지만 들어오신 걸 환영합니다!

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

감사합니다

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.031
BTC 61063.93
ETH 2667.11
USDT 1.00
SBD 2.61