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:
- Memahami Blockchain Indexer - Apa itu indexer, mengapa penting untuk DEX, dan bagaimana cara kerjanya
- Mengenal Framework Ponder - Framework modern untuk blockchain indexing yang 10x lebih cepat
- Menyiapkan Environment Pengembangan - Install dan konfigurasi Ponder dengan Lisk Sepolia testnet
- Membangun Indexer untuk SimpleDEX - Membuat indexer untuk track swap, liquidity, dan aktivitas DEX dari Sesi 7
- Menggunakan GraphQL API - Memanfaatkan GraphQL API yang ter-generate otomatis untuk query data DEX
- Integrasi Frontend - Merubah SimpleDEX dari Sesi 7 agar menampilkan data real-time dari indexer
๐ Jadwal Workshopโ
| Waktu | Durasi | Aktivitas | Format |
|---|---|---|---|
| 08:30 - 09:00 | 30m | Registrasi & Persiapan Environment | Persiapan |
| 09:00 - 09:30 | 30m | Pengantar: Masalah Tanpa Indexer & Solusinya | Pembukaan |
| 09:30 - 10:45 | 75m | Modul 1: Pengenalan Indexer & Ponder | Teori + Demo |
| 10:45 - 11:00 | 15m | Istirahat | Istirahat |
| 11:00 - 12:30 | 90m | Modul 2: Setup & Konfigurasi Ponder | Hands-on |
| 12:30 - 13:30 | 60m | Istirahat Makan Siang | Makan Siang |
| 13:30 - 15:00 | 90m | Modul 3: Indexing SimpleDEX Contract (Kelanjutan Sesi 7) | Hands-on |
| 15:00 - 15:15 | 15m | Istirahat | Istirahat |
| 15:15 - 16:45 | 90m | Modul 4: Integrasi Frontend SimpleDEX dengan Indexer | Hands-on |
| 16:45 - 17:00 | 15m | Demo Proyek Final & Penutupan | Penutupan |
๐ 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
- Indexing event
- 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:
- โ Panggilan RPC Mahal - Setiap query ke blockchain = biaya & rate limit
- โ Lambat - Scan ribuan block untuk cari data = menit bahkan jam
- โ Tidak Scalable - Aplikasi dengan banyak user = RPC overload
- โ Data Tidak Terstruktur - Event logs tidak optimal untuk display di UI
Solusi dengan Indexer:
- โ Cepat - Data sudah di-process & disimpan di database
- โ Murah - Query ke database lokal/cloud, bukan blockchain
- โ Scalable - Handle ribuan request per detik
- โ Ramah Developer - GraphQL API yang mudah digunakan
๐ก Ponder vs Solusi Lainโ
| Fitur | Ponder | The Graph | Backend 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 devgagal? 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:
- Lisk Sepolia Faucet: https://sepolia-faucet.lisk.com
- Gratis! Request 0.05 ETH per hari
Tambahkan ke MetaMask:
- Buka MetaMask
- Klik Networks โ Add Network
- Add Network Manually
- Masukkan detail di atas
- 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:
- ๐ Pahami Masalah - Kenapa indexer itu game-changer
- ๐ง Setup Ponder - Environment pengembangan siap
- โก Bangun Indexer - Index contract ERC-20 real-time
- ๐จ Buat UI - Frontend cantik untuk explore data
- ๐ Deploy - Aplikasi dApp production-ready
๐ Bagian 1: Pengenalan Blockchain Indexer โ
๐ Dukungan & Sumber Dayaโ
Jika mengalami masalah:
- Tanya instruktur di workshop
- Cek grup Telegram: Kelas Rutin Batch IV
- Discord Ponder: https://t.me/pondersh
- GitHub Issues: https://github.com/ponder-sh/ponder
Sumber Daya Belajar:
- Dokumentasi Ponder - Dokumentasi resmi
- Contoh-contoh Ponder - Contoh kode
- Dokumentasi Lisk Developer - Dokumentasi Lisk
- The Graph (untuk perbandingan) - Solusi alternatif
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