세상 간단한 geth!!
Geth노드를 분석해 보면, 결국 아래와 같은 블록 다이어그램으로 표현할수 있을 것 같습니다.
우선 geth는 이더리움 서비스 및 그 외 통계적 서비스, 그리고 지갑(어카운트 매니져), 마이닝, p2p 노드 역할을 수행합니다. 그래서 geth는 지갑이자, 노드입니다.
이더리움은 geth 노드에서 동작하는 이더리움 프로토콜과 이더리움 서비스들의 모임입니다. 말이 좀 이상한데 서비스란 하나의 기능을 담당하는 것이고, 프로토콜이란 서비스간의 연계동작이라고 생각하시면, 조금 머릿속이 편안해 질 것입니다.
먼저 서비스들을 살펴보면,
블룸 인덱서는 엄청나게 많은 트렌젝션을 빠른시간안에 조회하기 위해 사용됩니다
트렌젝션 풀 과 블록체인은 각각 채굴되지 않은 블록에 포함될 후보 트렌젝션들을 담아두는 역할과 블록체인 관련 합의나 데이터 쓰기등의 역할을 합니다. 해당내용들은 DB에 저장됩니다. 가스오라클은 가스비 정책을 정하기위한 서비스입니다. 최근 네트워크의 가스비 추세를 잘 기억해두었다가 반영한다던지...
이더리움 프로토콜을 담당하는 프로토콜 매니져는
지갑서비스의 생산물(트렌젝션)을 트렌젝션 풀 서비스의 입력으로 전달하는 부분을 담당하거나,
마이닝 서비스의 생산물을 p2p서비스의 인풋으로 전달하여 최종적으로 블록체인 서비스(합의/db쓰기 등등)의 행동결과를유발하는 일을 합니다.
이더리움 세상 간단하죠?ㅎㅎ
이 글을 끝으로 이더리움 코어의 기능적 분석을 잠시 중단합니다.
블록체인이라는 것을 제대로 알려면,
기능뿐만 아니라 철학적 고찰이 병행되어야 한다는 것을 절실히 느껴가지고요ㅎㅎ.
지극히 개인적으로 이더리움 주석 한글화 프로젝트를 진행하고 있습니다.
https://github.com/NAKsir-melody/go-ethereum *