
Dune으로 Solana 데이터 대시보드를 구축하는 방법
Solana 블록체인은 속도와 확장성이 뛰어나며 초당 수천 건의 트랜잭션을 처리합니다.
그 결과 분석가와 개발자가 활용할 수 있는 방대한 Solana 과거 데이터가 생성됩니다. 하지만 이를 활용하려면 적절한 도구가 필요합니다. 선도적인 온체인 데이터 플랫폼 Dune은 원시 블록체인 데이터를 실행 가능한 인사이트와 개발자 API로 변환합니다.
이 가이드에서는 실시간 지표, 과거 추세, 디코딩된 프로그램 데이터를 활용해 Dune에서 종합적인 Solana 대시보드를 구축하는 방법을 알아봅니다.
Solana 데이터 규모 이해하기
Solana는 초당 3,000건을 넘는 경우가 많을 정도로 처리량이 높아 막대한 양의 데이터를 생성합니다. 블록 생성과 트랜잭션 로그부터 토큰 스왑이나 NFT 민팅 같은 프로그램별 상호작용까지 모두 포함됩니다.
Dune은 최소한의 지연 시간으로 Solana의 실시간 활동을 수집합니다. 블록 헤더와 트랜잭션 서명 같은 원시 데이터 스트림은 1분 이내에 업데이트됩니다. 예를 들어 solana.transactions를 쿼리하면 토큰 출시 시 사용자 참여 급증과 같은 네트워크 활동을 모니터링할 수 있습니다.
Dune 플랫폼에서는 이 데이터를 간편하게 시각화할 수 있습니다. Dune은 2020년 제네시스 블록부터 최신 슬롯까지 Solana의 전체 기록을 인덱싱합니다. 이를 통해 현재 3,000억 건을 넘어선 전체 트랜잭션의 증가세나 DeFi 활동의 계절적 변동 같은 장기 추세를 분석할 수 있습니다. 예를 들어 이 쿼리는 네트워크 출시 이후 누적 트랜잭션을 추적하며, 다른 쿼리는 기록된 최초 및 최신 블록을 식별합니다.
Ethereum, BSC, Polygon과 비교하면 Solana는 높은 처리량 덕분에 데이터 규모가 두드러집니다. 직접 비교를 보면 일일 트랜잭션 수에서는 Solana가 앞서지만, 수수료와 DeFi 유동성에서는 여전히 Ethereum이 우세합니다.
기본 개념: Solana의 데이터 구조
Solana의 계정 모델과 트랜잭션 구조를 살펴보고, Dune으로 Solana 트랜잭션을 분석하는 방법을 알아보겠습니다.
Solana 계정 모델
Solana의 핵심에는 고유한 계정 모델이 있습니다. 프로그램 로직, 토큰 잔액, 실행 코드 등 모든 온체인 데이터는 계정에 저장됩니다. Solana 계정은 다음과 같은 특징이 있습니다.
계정 주소
공개 키 또는 Program Derived Addresses(PDA)의 시드에서 파생된 32바이트 식별자입니다. 예를 들어 Raydium 유동성 풀 주소는 토큰 민트와 기타 매개변수로 생성된 PDA입니다.
데이터 스토리지
계정에는 실행 가능한 바이트코드 프로그램의 경우 최대 10MB, PDA의 상태 정보는 최대 10KB까지 저장할 수 있습니다.
소유권과 임대료
계정은 데이터 크기에 비례하는 스토리지 비용(임대료)을 지불하기 위해 lamport(SOL의 소수 단위)를 보유해야 합니다. owner 필드는 계정을 제어하는 프로그램이나 지갑을 지정합니다. 소유자만 데이터를 수정하거나 lamport를 차감할 수 있습니다. 실행 가능 플래그는 계정에 실행 코드가 포함되어 있는지를 나타냅니다.
실제 사례로 SPL 토큰 계정은 연결된 지갑의 잔액을 data 필드에 저장하며, 소유자는 Token Program입니다.
Solana 트랜잭션의 구조
트랜잭션은 Solana 프로그램과 상호작용하는 수단입니다. 각 트랜잭션에는 다음이 포함됩니다.
- signature(고유 식별자)와 lamport로 지불한 수수료
- 다음을 지정하는 하나 이상의 instructions(ixs)
- 실행할 프로그램(예: Raydium의 스왑 함수)
- 읽고 쓸 계정(예: 토큰 볼트, 사용자 지갑)
- 명령별 인수(예: 스왑 수량, 수수료)
트랜잭션의 주요 특징은 다음과 같습니다.
- 원자적 실행: 트랜잭션은 전체가 성공하거나 실패하며, 부분 상태는 존재하지 않습니다.
- 크로스 프로그램 호출(CPI): 프로그램이 다른 프로그램을 호출해 중첩 명령을 생성할 수 있습니다.
- 로그 및 오류: 실패한 트랜잭션에는 오류 메시지가 포함되며, 로그에는 런타임 이벤트(예: 스왑 세부 정보)가 기록됩니다.
Dune에서 트랜잭션 분석하기
Dune의 solana.transactions 테이블은 다음과 같은 세부 인사이트를 제공합니다.
- block_slot: 트랜잭션이 처리된 슬롯 번호입니다.
- fee: lamport 단위의 트랜잭션 비용입니다.
- error: 실패 원인입니다(해당하는 경우).
- accounts: 관련된 모든 계정의 주소입니다.
- log_messages: 생성된 이벤트 로그입니다(예: 토큰 민팅).
더 자세히 조사하려면 solana.instruction_calls를 사용하세요.
- outer_instruction_index: 트랜잭션 내 명령의 위치입니다.
- inner_instruction_index: CPI 계층을 추적합니다. 해당 명령 내 inner_instruction의 위치이며 stack_height와는 다릅니다. Dune은 현재 stack_height 추가를 진행하고 있습니다.
- executing_account: 명령을 실행하는 프로그램입니다.
- data: 원시 명령 바이트입니다(16진수 인코딩).
Dune에서 Solana 데이터 탐색하기
Dune은 Raydium과 Magic Eden 같은 주요 프로토콜을 포함해 150개 이상의 디코딩된 Solana 프로그램을 지원합니다. 커뮤니티는 검증인 성능부터 밈 코인 추세까지 다양한 지표를 다루는 2,000개 이상의 대시보드를 구축했습니다. 새로운 프로그램도 정기적으로 추가됩니다. 사용자는 Dune 웹사이트에서 디코딩 요청을 제출할 수 있습니다.
Dune은 Solana 데이터를 세 가지 계층으로 분류합니다.
1. 원시 데이터
solana.blocks 및 solana.instruction_calls 같은 테이블을 통해 필터링되지 않은 온체인 활동에 접근할 수 있습니다.
2. 정제된 데이터
토큰 가격이나 USD 환산액 같은 사전 처리된 추상화 데이터로 분석을 간소화합니다.
3. 디코딩된 데이터
프로토콜별 데이터세트(예: DEX 스왑을 위한 dex.trades, NFT 판매를 위한 nft.trades)는 바로 활용할 수 있는 지표를 제공합니다.
자산을 추적하려면 검증인 활동을 보여주는 staking.actions 또는 토큰 가격을 제공하는 prices.usd 같은 테이블을 살펴보세요. 트레이딩 분석가는 dex.trades를 활용해 Orca와 Raydium 같은 플랫폼의 거래량을 비교할 수 있습니다.
내부 작동 방식: Dune의 데이터 처리 과정
Dune은 온체인 업데이트를 인덱싱 시스템으로 스트리밍하는 Geyser 플러그인을 통해 Solana 데이터를 수집합니다. 이후 원시 데이터는 프로그램 IDL을 사용해 디코딩되고 쿼리하기 쉬운 테이블로 구성됩니다. Solana 데이터 인프라를 자세히 알아보려면 Helius의 Solana 데이터 도구 가이드를 확인하세요.
단계별 가이드: Solana 대시보드 구축하기
1단계: 목표 정의하기
먼저 중점 영역을 정하세요. NFT 판매, DeFi 수익률, 네트워크 성능 중 무엇을 분석할지 결정합니다. 이 예시에서는 일일 DEX 거래량을 추적하는 대시보드를 구축합니다.
2단계: 데이터 쿼리하기
Dune의 쿼리 편집기로 이동해 dex.trades에서 거래 데이터를 가져옵니다.
SELECT DATE(block_time) AS date, SUM(amount_usd) AS volume
FROM solana.dex.trades
WHERE project = 'orca'
GROUP BY 1
ORDER BY date DESC; 이 쿼리는 Orca의 일일 거래량을 가져옵니다. 쿼리를 저장하고 막대 차트로 시각화하세요.
3단계: 구성하고 맞춤 설정하기
새 대시보드를 만들고 차트를 추가하세요. 전체 거래 건수를 보여주는 카운터나 거래량 기준 상위 토큰 순위 테이블 같은 위젯을 추가해 대시보드를 개선할 수 있습니다. 텍스트 상자를 사용해 신규 토큰 출시로 인한 급증 같은 추세에 설명을 덧붙이세요.
Dune에서 Solana 대시보드를 구축하는 전체 과정을 알아보려면 이 짧은 동영상 시리즈를 확인하세요.
고급 분석을 위한 전문가 팁
팁 1: 원시 데이터와 디코딩된 데이터 결합하기
프로그램이 완전히 디코딩되지 않은 경우(예: 새로운 NFT 마켓플레이스) solana.instruction_calls를 사용해 로그를 수동으로 파싱하세요. 그런 다음 디코딩된 토큰 테이블과 교차 검증해 자산 세부 정보를 식별합니다.
팁 2: 속도 최적화하기
Solana의 방대한 데이터 규모는 쿼리 속도를 저하시킬 수 있습니다.
초기 단계에서 block_slot 또는 block_time으로 필터링하고, 자주 접근하는 지표에는 구체화된 뷰를 사용하세요.
팁 3: 가격 피드 활용하기
거래 데이터와 prices.usd를 조인해 토큰 수량을 USD로 환산하세요. 특히 변동성이 큰 자산의 거래량을 맥락에 맞게 파악할 수 있습니다.
마무리
Dune은 쏟아지는 Solana 데이터를 체계적이고 접근하기 쉬운 리소스로 변환합니다. 데이터세트와 도구를 능숙하게 활용하면 프로토콜 최적화부터 시장 추세 추적까지 의사결정에 필요한 인사이트를 얻을 수 있습니다.
더 자세히 알아보려면 Solana의 Geyser 플러그인 아키텍처를 살펴보고 이 Solana 데이터 YouTube 재생목록의 동영상 튜토리얼을 시청하세요.
관련 아티클
Helius 구독하기
최신 Solana 개발 소식을 확인하고 새 게시물 알림을 받아보세요


