EOS 3.0 파헤치기 2 — 폴더구조

GXC_Jinhwan
GameXCoin
Published in
3 min readMar 28, 2018

앞선 장에선 이오스 빌드 후 데몬 돌리기까지 실행해봤다.

이번 장에선 본격적으로 이오스를 가지고 놀기전, 이오스의 폴더 구조에 대해 살펴보겠다.

git clone 받은 폴더로 이동하자. 다음과 같은 폴더구조가 보일 것이다.

  • build

이오스를 빌드한 후, 그 결과물이 저장된다. 실제 실행할 프로그램들이 위치해있다.

  • contracts

예제 스마트 컨트랜트 코드가존재한다. currency, dice, bancor 등… 스마트 컨트랙트의 구조는 다음 장에서 좀 더 알아보

  • docker

EOSIO를 docker를 이용해 실행 시 필요한 설정파일이 존재한다.

*현 버젼에선 docker build중에 여러 에러들이 리포트되고 있다. 굳이 docker를 이용할 필요가 없으면 각 os에 맞게 빌드하는걸 추천한다.

  • docs

html로 된 설명서들이다. 해당 설명서는 https://eosio.github.io/eos/index.html

에서 확인 가능하다.

  • externals

외부 라이브리러들이다. 현재는 binaryyen이라는 webassembly 컴파일러(https://github.com/WebAssembly/binaryen)만 존재한다.

  • libraries

코어 function들이 제공된다. chain, smart contract 관련 코어들이 정의된다. 실제 블록체인 코어모듈을 수정하려면 libraries의 코드를 수정해야 한다.

  • plugins

nodeos(eos daemon)을 실행할 때, 여러 플러그인들을 더하고 빼며 실행이 가능한데, 이런 플러그인들에 관한 소스를 볼 수 있다. chain, http, wallet, account 등등이 존재한다.

  • programs

실제 돌릴 수 있는 프로그램들이다. 주로 사용되는 프로그램으로는

— nodeos: eos daemon이다. 구버전에선 eosiod였다.

— cleos: blockchain과 통신하는 command line interface 를 제공한다. 구버전에선 eosioc였다.

— eosiowd: eos wallet 관리 프로그램이다.

  • scripts

운영체제별 build를 위한 scripts들이 존재한다.

Build folder Structure

./build 폴더에는 상위폴더 구조를 본딴 빌드 결과물이 저장된다. 또한 추가로 다른 폴더들이 더 존재한다.

** EOS의 이전버전과는 다르게 var, etc 같은 리눅스 운영체제의 주 디렉토리를 본딴 구조를 살펴볼 수 있다. blockchain OS를 표방하는 namespace로 보인다.

  • var

현재는 /var/lib/eosio/node_00 만 존재한다. block produce시 생성되는 데이터(block, wallet)들이 저장된다.

  • etc

현재는 /etc/eosio/node_00 만 존재한다.

config.ini — nodeos 관련 설정값이다. 빌드 후 nodeos를 정상적으로 동작시키려면 이 값을 변경하여야 한다.

genesis.json — 제네시스 블록에 관한 정보가 담겨있다.

다음 장에선 wasm으로 동작하는 eosio의 smart contract 구조 분석 및 컨트랙트 예제중 하나인 currency 를 issue 해보도록 하겠다.

--

--