[연재] 이더리움 dApp을 개발하기 위한 기초 지식 - 구조 4

[연재] 이더리움 dApp을 개발하기 위한 기초 지식 - 구조 4


이번 글에서는 앞에서 살펴본 클라이언트 프로그램이 전체 맥락에서 무엇인지 살펴보겠다. 결론부터 말하면 로컬 pc에 실행하는 채굴 프로그램, 채굴 클라이언트인 geth, parity는 클라이언트며 서버다.


클라이언트 역할


geth, parity와 같은 블럭체인 클라이언트 프로그램을 실행한다는 것은 거대한 블럭체인 네트웍에 참여한다는 말이다.
이는 마치 토렌트 망에 uTorrent 같은 클라이언트 프로그램을 실행하여 특정 토렌트 파일을 다운로드 받는 것과 동일하다.
이런 블럭체인 네트웍을 블럭체인 데이터베이스 줄여서 chainbase라고 부른다.


즉 geth,parity는 chainbase에 붙어 데이터를 싱크하는 클라이언트 역할을 한다.




서버 역할


chainbase 입장에서는 클라이언트지만, 여기에 붙어 계정을 생성하고, 컴파일된 스마트 컨트렉트를 실행하게 되는데 이런 의미로 보면 일반 사용자(위 그림에서 User)의 관점에서 보면 서버 역할을 동시에 한다.

계정을 만드는 것을 예를 들면 사용자가 계정을 만들어라고 RPC 요청을 하면, geth는 서버로서 그 응답을 받아 계정을 생성하고,  클라이언트로서 이 정보를 전체 chainbase에 트랜잭션으로 등록하는 역할을 한다.


따라서 로컬에 실행되는 geth, parity가  바로 클라이언트 이며 서버다.