블록체인 스캐너(Crawler) 로직
메인넷 블록체인 스캐너를 사용하기 위한 데이터베이스 구성에 대한 설명입니다.
개요
이 문서는 블록체인 스캐너(이하 크롤러)의 주요 로직을 데이터베이스의 각 테이블과 연관지어 설명합니다.
크롤러 입장에서 각 데이터베이스 컬럼들을 정의하고, 해당 데이터들이 쌓이는 과정을 상세하게 기술합니다.
주요 공통 로직
End-point를 향해 RPC method를 호출하여 노드에게서 데이터를 가져옵니다.
*RPC method: getBlock, getTransactionReceipt 등
크롤러는 block 및 transaction을 순차적으로 돌면서 수많은 조건에 따라 필요한 데이터만을 가려냅니다. 데이터를 구문분석하여 사람이 읽고 이해할 수 있는 데이터로 가공한 뒤, 데이터베이스에 insert합니다.
크롤러는 기본적으로 IERC20, IERC721, IERC1155 표준을 기준으로 데이터를 수집하고 있으며, 표준을 지키지 않았더라도 거래가 정상적으로 이루어진 토큰들은 원활히 수집될 수 있도록 설계되어 있습니다.
주요 메서드
메서드명 | 설명 |
---|---|
getProvider | 메인넷 블록 체인에 연결하는 데 사용 |
getBlock | 메인넷 블록 체인에서 특정 블록의 정보를 조회하는 데 사용 |
getTransactionReceipt | 메인넷 블록 체인에서 특정 트랜잭션의 receipt 정보를 조회하는 데 사용 |
getTransaction | 메인넷 블록 체인에서 특정 트랜잭션의 정보를 조회하는 데 사용 |
getBalance | 메인넷 블록 체인에서 특정 주소의 잔액을 조회하는 데 사용 |
주요 제공 서비스
주요 메서드를 활용하여 Live Scanner 기능을 구현합니다.
메서드명 | 설명 |
---|---|
addTokenList() | 토큰 수집 |
addTokenOwnerList() | 토큰 오너 수집 |
addTokenTransferList() | 토큰 전송내역 수집 |
addCollectionList() | 컬렉션 수집 |
addNFTTransactionList() | NFT 전송내역 수집 |
addTradeList() | NFT 거래내역 수집 |
getNextState() | 최신 블럭 번호 수집 |
updateNodeState() | 현재 노드와의 연결 상태 |
statistics() | 크롤러 속도와 진행상태 수집 |
Last updated