본문으로 바로가기

이더리움 소스를 받아보면 다음과 같이 이더리움 코어 패키지가 디렉토리별로 나누어져 있습니다.



각각의 코어 계층을 정리해보면 다음과 같습니다.


데이타 계층 : account, core, les, light, trie

  - 이더리움에서 다루는 각종 데이타 구조를 정의하고 관련 데이타를 관리하는 계층입니다.

    주요 데이타 구조로는 어카운트, 트랜잭션, 메시지, 리시트와 이러한 데이타의 집합인 블록, 블록체인등이 있습니다.

    그리고 이러한 데이타는 비트코인과 마찬가지로 구글에서 개발한 레벨DB를 사용하여 저장, 관리되고 있습니다.


합의 계층 : consensus, miner

  - 합의 계층은 블록의 유효성을 검증하는 합의엔진과 블록을 생성하는 과정인 마이닝을 담당하고, 마이닝 과정에서 채굴자에게 지급되는 수수료인 가스(Gas)와 이더등의 처리를 담당합니다.


실행계층 : eth, contracts, console, ethclient, node

  - 실행계층은 이더리움의 핵심적인 특징인 스마트 컨트랙트와 스마트 컨트랙트를 실행시켜주는 EVM(Ethereum Virtual Machine) 의 처리를 담당합니다.


공통계층 : P2P, ethdb, rpc, crypto, rlp, params, common, event, metrics

  - 공통계층은 이더리움 동작상에서 공통적으로 사용되는 기능들이 포함되어 있습니다. P2P 네트워크 프로토콜, 암호화 해쉬함수, 전자서명, 각종 인코딩, 공통저장소 등이 해당됩니다.


응용계층 : mobile, ethstats, internal, swarm, whisper, cmd/bootnode, cmd/geth, cmd/puppeth, cmd/rlpdump

  - 이더리움은 비트코인과 달리 프로그래밍 가능한 플랫폼으로서 다양한 어플리케이션을 작성할수 있습니다. 이러한 어플리케이션 작성에 해당하는 스마트 컨트랙트와 분산화일시스템인 스웜(swarm), 그리고 분산 메시징 시스템인 위스퍼(whisper)등이 해당됩니다.