Skip to main content

Sesi 8: Blockchain Indexer & Integrasi Frontend

๐Ÿ“Œ Catatan Penting: Sesi ini adalah kelanjutan langsung dari Sesi 7. Kita akan menggunakan SimpleDEX contract yang sudah dibangun di Sesi 7 dan membuat indexer untuk track semua aktivitas DEX (swap, liquidity, dll) serta membangun dashboard analytics yang lengkap.

๐Ÿ“‹ Informasi Sesiโ€‹

Tanggal: Sabtu, TBD
Waktu: 09:00 - 17:00 WIB (8 jam)
Lokasi: TBD
Format: Workshop tatap muka (offline)
Peserta: 40-80 pengembang
Level: Menengah - Lanjut Pengembangan Web3


๐ŸŽฏ Tujuan Pembelajaranโ€‹

Setelah menyelesaikan sesi ini, Anda akan mampu:

  1. Memahami Blockchain Indexer - Apa itu indexer, mengapa penting untuk DEX, dan bagaimana cara kerjanya
  2. Mengenal Framework Ponder - Framework modern untuk blockchain indexing yang 10x lebih cepat
  3. Menyiapkan Environment Pengembangan - Install dan konfigurasi Ponder dengan Lisk Sepolia testnet
  4. Membangun Indexer untuk SimpleDEX - Membuat indexer untuk track swap, liquidity, dan aktivitas DEX dari Sesi 7
  5. Menggunakan GraphQL API - Memanfaatkan GraphQL API yang ter-generate otomatis untuk query data DEX
  6. Integrasi Frontend - Merubah SimpleDEX dari Sesi 7 agar menampilkan data real-time dari indexer

๐Ÿ“… Jadwal Workshopโ€‹

WaktuDurasiAktivitasFormat
08:30 - 09:0030mRegistrasi & Persiapan EnvironmentPersiapan
09:00 - 09:3030mPengantar: Masalah Tanpa Indexer & SolusinyaPembukaan
09:30 - 10:4575mModul 1: Pengenalan Indexer & PonderTeori + Demo
10:45 - 11:0015mIstirahatIstirahat
11:00 - 12:3090mModul 2: Setup & Konfigurasi PonderHands-on
12:30 - 13:3060mIstirahat Makan SiangMakan Siang
13:30 - 15:0090mModul 3: Indexing SimpleDEX Contract (Kelanjutan Sesi 7)Hands-on
15:00 - 15:1515mIstirahatIstirahat
15:15 - 16:4590mModul 4: Integrasi Frontend SimpleDEX dengan IndexerHands-on
16:45 - 17:0015mDemo Proyek Final & PenutupanPenutupan

๐Ÿš€ Prasyaratโ€‹

Yang Harus Sudah Dipahami:โ€‹

โœ… Dasar JavaScript/TypeScript:

  • Async/await, promises
  • JavaScript Modern (ES6+)
  • Konsep dasar TypeScript
  • Manajemen package npm/pnpm

โœ… Fundamental Blockchain:

  • Smart contracts & events
  • RPC endpoints
  • Dasar wallet (MetaMask)
  • WAJIB: Sudah menyelesaikan Sesi 7 - SimpleDEX contract sudah di-deploy
  • Pemahaman dasar AMM & DEX (dari Sesi 7)

โœ… Pengembangan Web:

  • Dasar React/Next.js
  • Konsumsi API
  • Pengetahuan dasar GraphQL (nilai plus!)

Tools yang Dibutuhkan:โ€‹

โœ… Environment Pengembangan:

  • Node.js v18 atau lebih baru
  • pnpm atau npm/yarn
  • VS Code atau code editor pilihan
  • Git untuk version control

โœ… Tools Blockchain:

  • MetaMask wallet extension
  • Lisk Sepolia ETH dari faucet
  • Akses Lisk Sepolia RPC (gratis!)

โœ… Database:

  • PostgreSQL (akan disetup bersama)
  • atau PGlite (in-memory, lebih mudah untuk development)

๐Ÿ“š Struktur Dokumentasiโ€‹

Dokumentasi ini dibagi menjadi 4 bagian yang fokus pada membangun DEX Analytics Dashboard sebagai kelanjutan dari SimpleDEX di Sesi 7:

๐Ÿ“– Bagian 1: Pengenalan Blockchain Indexerโ€‹

Modul 1 (09:30 - 10:45)

  • Apa itu blockchain indexer?
  • Masalah tanpa indexer untuk DEX (cerita menarik!)
  • Perbandingan: Query langsung vs Indexer
  • Kenapa Ponder? (vs The Graph, Subgraph, dll)
  • Use cases di industri DeFi (Uniswap, Curve, dll)
  • Arsitektur Ponder

๐Ÿ“– Bagian 2: Setup & Konfigurasi Ponderโ€‹

Modul 2 (11:00 - 12:30)

  • Instalasi framework Ponder
  • Setup PostgreSQL / PGlite
  • Konfigurasi network Lisk Sepolia
  • Struktur proyek Ponder
  • Membuat proyek indexer untuk SimpleDEX
  • Memahami ponder.config.ts
  • Memahami ponder.schema.ts

๐Ÿ“– Bagian 3: Indexing SimpleDEX Contractโ€‹

Modul 3 (13:30 - 15:00)

  • Koneksi ke SimpleDEX dari Sesi 7 - Gunakan contract yang sudah di-deploy
  • Konfigurasi contract SimpleDEX dalam Ponder
  • Membuat schema untuk data DEX:
    • Pool state (reserves, TVL)
    • Swap history
    • Liquidity events (add/remove)
    • LP token positions
  • Menulis fungsi indexing:
    • Indexing event Swap
    • Indexing event LiquidityAdded
    • Indexing event LiquidityRemoved
    • Tracking pool reserves & price
    • Tracking LP positions
  • Testing indexer secara lokal
  • Query dengan GraphQL
  • Troubleshooting masalah umum

๐Ÿ“– Bagian 4: Integrasi Frontend - DEX Analytics Dashboardโ€‹

Modul 4 (15:15 - 16:45)

  • Setup proyek Next.js
  • Koneksi ke Ponder GraphQL API
  • Membuat DEX Analytics Dashboard:
    • Pool Statistics - TVL, volume 24h, total swaps
    • Swap History - Daftar swap terbaru dengan price impact
    • Liquidity Events - Timeline add/remove liquidity
    • Price Chart - Grafik harga real-time
    • LP Positions - Track posisi liquidity provider
    • User Analytics - Statistik per user (swaps, volume, dll)
  • Update real-time
  • Desain responsive
  • Pertimbangan deployment

๐ŸŽฏ Apa Itu Blockchain Indexer?โ€‹

Analogi Dunia Nyata: Perpustakaan vs Googleโ€‹

Bayangkan Anda mencari buku di perpustakaan besar:

Tanpa Indexer (Query Langsung ke Blockchain):

๐Ÿƒ Anda harus jalan ke setiap rak
๐Ÿ“š Buka satu-satu semua buku
๐Ÿ” Cari halaman yang Anda butuhkan
โฑ๏ธ Butuh BERJAM-JAM!
๐Ÿ’ธ Bayar biaya masuk setiap kali

Dengan Indexer (Menggunakan Ponder):

๐Ÿ–ฅ๏ธ Buka katalog digital (seperti Google)
โšก Ketik keyword โ†’ langsung ketemu!
๐Ÿ“Š Hasil ter-organize & mudah difilter
โฑ๏ธ Dalam HITUNGAN DETIK!
๐Ÿ’ฐ Query sepuasnya, gratis!

Kenapa Indexer SANGAT Penting?โ€‹

Masalah Real di Web3:

  1. โŒ Panggilan RPC Mahal - Setiap query ke blockchain = biaya & rate limit
  2. โŒ Lambat - Scan ribuan block untuk cari data = menit bahkan jam
  3. โŒ Tidak Scalable - Aplikasi dengan banyak user = RPC overload
  4. โŒ Data Tidak Terstruktur - Event logs tidak optimal untuk display di UI

Solusi dengan Indexer:

  1. โœ… Cepat - Data sudah di-process & disimpan di database
  2. โœ… Murah - Query ke database lokal/cloud, bukan blockchain
  3. โœ… Scalable - Handle ribuan request per detik
  4. โœ… Ramah Developer - GraphQL API yang mudah digunakan

๐Ÿ’ก Ponder vs Solusi Lainโ€‹

FiturPonderThe GraphBackend Custom
Kecepatanโšกโšกโšก 10x lebih cepat๐Ÿข Lambat๐Ÿคท Tergantung
Waktu Setup๐Ÿš€ 5 menitโฐ 30+ menitโฐ Hari/minggu
Type Safetyโœ… Full TypeScriptโš ๏ธ Terbatas๐Ÿคท Tergantung
Dev Lokalโœ… Hot reloadโŒ Deploy duluโœ… Ya
GraphQLโœ… Auto-generatedโœ… YaโŒ Manual
Biaya๐Ÿ’ฐ Gratis (self-host)๐Ÿ’ฐ๐Ÿ’ฐ Hosting berbayar๐Ÿ’ฐ๐Ÿ’ฐ๐Ÿ’ฐ Biaya infra
Learning Curve๐Ÿ“š Mudah๐Ÿ“š๐Ÿ“š Sedang๐Ÿ“š๐Ÿ“š๐Ÿ“š Susah
Database๐Ÿ—„๏ธ Postgres๐Ÿ—„๏ธ Graph Node๐Ÿ—„๏ธ Apapun

Kesimpulan: Ponder = Kecepatan The Graph + Fleksibilitas backend custom + Developer experience framework modern


๐ŸŽฎ Proyek Yang Akan Dibangunโ€‹

DEX Analytics Dashboard - Dashboard lengkap untuk analitik SimpleDEX yang dibangun di Sesi 7

Fitur Utama:โ€‹

Backend (Ponder Indexer):

  • ๐Ÿ“Š Index Event Swap - Track semua swap di DEX dengan price impact
  • ๐Ÿ’ง Index Event Liquidity - Track add/remove liquidity
  • ๐Ÿ“ˆ Pool State Tracking - Real-time reserves, TVL, price
  • ๐Ÿ‘ฅ LP Positions - Track posisi liquidity provider per user
  • ๐Ÿ“… Data Historis - History swap, liquidity events dengan timestamp
  • ๐Ÿ’ฐ Volume Analytics - Volume 24h, 7d, total volume

Frontend (Next.js):

  • ๐ŸŽจ UI Cantik - Desain modern & responsive seperti Uniswap Info
  • ๐Ÿ“Š Pool Statistics - TVL, volume, total swaps, current price
  • ๐Ÿ“œ Swap Feed - List swap real-time dengan amount in/out
  • ๐Ÿ’ง Liquidity Timeline - Timeline add/remove liquidity
  • ๐Ÿ“ˆ Price Chart - Grafik harga real-time (CAMP/USDC)
  • ๐Ÿ‘ค User Analytics - Statistik per user (total swaps, volume, dll)
  • ๐Ÿ” Pencarian - Cari berdasarkan address atau transaction hash
  • โšก Loading Cepat - Query GraphQL yang dioptimasi

Analogi Dunia Nyata:โ€‹

DEX Analytics Dashboard = Uniswap Info untuk SimpleDEX Anda!

Fitur penting:
- Lihat statistik pool (TVL, volume, price)
- Track semua swap yang terjadi
- Monitor aktivitas liquidity provider
- Analisis volume & trading patterns
- Dashboard untuk user tracking

๐Ÿ› ๏ธ Tech Stackโ€‹

Stack Backend:โ€‹

  • Ponder - Framework blockchain indexing
  • PostgreSQL atau PGlite - Database untuk data terindex
  • GraphQL - API yang ter-generate otomatis oleh Ponder
  • TypeScript - Pengembangan type-safe
  • Viem - Library Ethereum (built-in di Ponder)

Stack Frontend:โ€‹

  • Next.js 14+ - Framework React dengan App Router
  • TypeScript - Type safety
  • TanStack Query - Data fetching & caching
  • GraphQL Request - Client GraphQL
  • Tailwind CSS - Styling
  • Shadcn UI - Library komponen

Blockchain:โ€‹

  • Lisk Sepolia Testnet - Environment testing
  • Contract ERC-20 - Token contract untuk indexing
  • MetaMask - Interaksi wallet

๐Ÿ“– Cara Menggunakan Dokumentasiโ€‹

Alur Pembelajaran (Perjalanan Linear Token Explorer):โ€‹

Bagian 1: Pahami โ†’ Pahami masalah & solusi indexer

Bagian 2: Setup โ†’ Install Ponder & konfigurasi environment

Bagian 3: Index โ†’ Bangun indexer untuk contract ERC-20:

  • Index event Transfer
  • Index event Approval
  • Kalkulasi & simpan balances
  • Query dengan GraphQL

Bagian 4: Bangun UI โ†’ Buat frontend yang consume data:

  • Tampilkan info token
  • Tampilkan list transfer
  • Pencarian & filter
  • Update real-time

Tips Belajar:โ€‹

  • โœ… Ikuti urutan Bagian 1 โ†’ 2 โ†’ 3 โ†’ 4 - Jangan skip atau loncat-loncat
  • โœ… Hands-on setiap step - Ketik sendiri, jangan copy-paste semua
  • โœ… Test setiap modul - Pastikan indexer jalan sebelum lanjut ke frontend
  • โœ… Pahami, jangan hafal - Mengerti konsepnya, bukan sintaksnya
  • โœ… Eksplor GraphQL - Main-main dengan queries di GraphQL playground

Troubleshooting:โ€‹

  • Error koneksi database? Cek setup PostgreSQL/PGlite
  • ponder dev gagal? Pastikan Node.js v18+
  • Indexing terhenti? Periksa RPC URL dan konfigurasi network
  • Frontend tidak load data? Verify GraphQL endpoint
  • Error TypeScript? Periksa definisi schema

๐ŸŒŸ Kenapa Framework Ponder?โ€‹

Dibandingkan The Graph:โ€‹

Performa:

  • โšก 10x lebih cepat sync data (lihat benchmark di website)
  • ๐Ÿ—„๏ธ Database 35x lebih kecil (31 MB vs 1.1 GB untuk ERC-20)
  • ๐Ÿš€ Instant hot reload saat development

Developer Experience:

  • ๐Ÿ’ป Full TypeScript - Tulis fungsi indexing di TS
  • ๐Ÿ”ฅ Tanpa codegen - Inferensi tipe otomatis
  • ๐Ÿ—๏ธ Development lokal - Test tanpa deploy
  • ๐Ÿ“ Error lebih baik - Pesan error jelas dengan stack traces

Fleksibilitas:

  • ๐Ÿ—„๏ธ Akses Postgres langsung - Query langsung atau via GraphQL
  • ๐ŸŽจ Custom API routes - Bukan cuma GraphQL
  • ๐Ÿ”Œ Integrasi mudah - Kerja dengan framework frontend apapun
  • ๐ŸŒ Self-hosted - Deploy dimana saja yang menjalankan Node.js

๐ŸŽฏ Hasil Pembelajaranโ€‹

Setelah selesai workshop ini, Anda akan:

โœ… Memahami:

  • Konsep blockchain indexing & use cases
  • Arsitektur framework Ponder
  • Bagaimana indexer mengubah data blockchain
  • Desain schema GraphQL untuk data blockchain
  • Pattern integrasi frontend

โœ… Bisa Membuat:

  • Proyek Ponder indexer dari scratch
  • Schema untuk index event blockchain
  • Fungsi indexing untuk handle events
  • Query GraphQL untuk fetch data
  • Aplikasi dApp full-stack dengan backend indexer

โœ… Siap Untuk:

  • Bangun dApps production-grade dengan Ponder
  • Index protokol DeFi kompleks (Uniswap, Aave, dll)
  • Buat dashboard analytics blockchain
  • Kontribusi ke proyek Web3 yang menggunakan indexers

๐Ÿ“ Catatan Pentingโ€‹

Info Network Lisk Sepolia:โ€‹

Detail Network:

Nama Network: Lisk Sepolia Testnet
Chain ID: 4202
RPC URL: https://rpc.sepolia-api.lisk.com
Simbol Currency: ETH
Block Explorer: https://sepolia-blockscout.lisk.com

Faucet:

Tambahkan ke MetaMask:

  1. Buka MetaMask
  2. Klik Networks โ†’ Add Network
  3. Add Network Manually
  4. Masukkan detail di atas
  5. Save & Switch

Kebutuhan Sistem:โ€‹

Minimum:

  • Node.js v18.0 atau lebih baru
  • 4 GB RAM
  • 2 GB ruang disk kosong
  • Koneksi internet (untuk sync data blockchain)

Rekomendasi:

  • Node.js v20+
  • 8 GB RAM
  • 5 GB ruang disk
  • Internet stabil (indexing membutuhkan bandwidth)

Persiapan Sebelum Workshop:โ€‹

1 Hari Sebelum:

  • Install Node.js v18+ (verifikasi: node --version)
  • Install pnpm (atau npm/yarn)
  • Setup MetaMask dengan Lisk Sepolia
  • Dapatkan testnet ETH dari faucet
  • Install PostgreSQL (opsional, bisa pakai PGlite)

Pagi Hari Workshop:

  • Charge laptop full battery
  • Bawa charger!
  • Download VS Code extensions (ESLint, Prettier, dll)
  • Test koneksi internet

๐Ÿš€ Siap Untuk Memulai?โ€‹

Mari kita mulai perjalanan menjadi blockchain indexer expert!

Struktur workshop:

  1. ๐Ÿ“š Pahami Masalah - Kenapa indexer itu game-changer
  2. ๐Ÿ”ง Setup Ponder - Environment pengembangan siap
  3. โšก Bangun Indexer - Index contract ERC-20 real-time
  4. ๐ŸŽจ Buat UI - Frontend cantik untuk explore data
  5. ๐Ÿš€ Deploy - Aplikasi dApp production-ready

๐Ÿ“– Bagian 1: Pengenalan Blockchain Indexer โ†’


๐Ÿ“ž Dukungan & Sumber Dayaโ€‹

Jika mengalami masalah:

Sumber Daya Belajar:

Komunitas:

  • Telegram Ponder (sangat aktif!)
  • Telegram Ethereum Jakarta
  • Discord Lisk
  • #PonderDev di X/Twitter

Mari bangun masa depan infrastruktur data Web3! ๐Ÿš€

#BuildWithPonder | #EthereumJakarta | #LiskSepolia | #Web3Indonesia