[연재] 이더스캔(etherscan.io)을 만들어 보자 - 도입

이더스캔(etherscan.io)을 만들어 보자 - 도입

이더스캔 은 이더리움 블럭체인 데이터를 체계적으로 정리하여 사용자가 빠르게 조회할 수 있도록 만들어 놓은 사이트이다.


이더리움에 관심이 있거나 이더를 소유한 사용자라면, 자신의 거래 데이터를 확인하기 위해 한 번쯤은 사용해 보았을 것이다.


어떻게 이렇게 빠르고 실시간으로 데이터를 조회할 수 있을까?

이 사이트를 사용할 때마다 드는 의문점 중 하나는 "어떻게 이렇게 빠르고 실시간으로 데이터를 조회할 수 있을까?".

블럭체인 데이터는 사용자가 편리하게 / 다양한 옵션으로 조회하기 위해 최적화된 시스템은 아니다.

MySQL과 같은  RDBMS은 데이터를 조회하기 위해 SQL 이라고 하는 언어를 제공한다. 블럭체인도 SQL과 같이 데이터를 조회하기 위해 JSON-RPC 규약을 제공한다.

가장 보편적으로 사용하는 모듈이 web3.js 일 것이다.

사용해 본 분들은 알겠지만, web3.js가 그렇게 편한 툴이 아닐 뿐더러 SQL 처럼 다양한 조건으로 데이터 작업을 하기에는 아직 역부족이다.

그렇다면 다양한 정보를 체계적으로 제공하는 이더스캔 같은 사이트는 어떻게 만들었을까?


뭔가 따로 데이터를 저장하고 있지 않을까?

웹에서 이리저리 조회해보면서 대충 추측하게 된 것은 블럭체인 데이터를 스캔해서 RDBMS와 같은 곳에 저장해두고 이를 서비스한다는 것이다.

사실 100% 확신할 수는 없다. 하지만 이름이 주는 의미는 그렇다. 이더 스캔이지 않은가.

스캔한 데이터를 저장하는 데이터베이스가 RDBMS일지 NoSQL일지는 모른다.

하지만 블럭체인 데이터를 실시간으로 읽어서 조회가 편리한 데이터베이스에 저장해서 보여주지 않고선 이런 서비스를 제공하기 힘들다는 것이다.

이 번 연재에서는 "어떻게 블럭체인 데이터를 스캔하며 이를 RDBMS에 저장하는가?"에 대해 다뤄보겠다.