source avatarπ

Bagikan
Share IconShare IconShare IconShare IconShare IconShare IconCopy

✅ Analisis Mendalam Crawler (CrawlPi) Repo: https://t.co/DjKmIYN0OD 1. Tujuan Umum CrawlPi adalah crawler Node.js real-time yang mengambil data dari Pi Blockchain (berbasis Stellar). Tujuan utamanya adalah mengambil semua data yang diperlukan (blok, transaksi, operasi, efek, saldo, penerima klaim/penahanan, dll.) dan menyimpannya di MySQL, sekaligus mengirimkan analitik/statistik ke Firebase Firestore untuk situs ExplorePi. Berbeda dengan pi-explorer resmi, ia mempertahankan database indeks sendiri → memungkinkan dashboard dan analitik yang lebih cepat dan jauh lebih kaya. 2. Tumpukan Teknologi Komponen Teknologi yang Digunakan Runtime Node.js Blockchain stellar-sdk + Pi Horizon API Database MySQL (mysql2) Database Analitik Firebase Firestore Penjadwal node-schedule (di getdata.js) Konfigurasi .env + dotenv Dependensi (package.json): stellar-sdk, mysql2, firebase-admin, dotenv, node-schedule 3. Logika Kerja (index.js) // File utama block.block() // Stream ledger effect.crawl() // Stream efek operation.operation() // Stream operasi tx.transaction() // Stream transaksi (biaya) Menggunakan streaming (server.ledgers().stream(), .transactions().stream(), dll.). Menulis data ke MySQL secara langsung saat ledger/operasi/efek baru datang. Mendukung kelanjutan mulus menggunakan sistem cursor (disimpan di .env). Tekan q untuk shutdown elegan — menyimpan cursor terbaru ke last.txt. 4. Modul (folder lib/) — Detail File Tanggung Jawab Catatan Penting block.js Stream ledger (blok) → menulis ke tabel block Durasi blok (spend), total Pi, kolam biaya, jumlah tx sukses/gagal transaction.js Menyimpan biaya transaksi sukses ke tabel fee Hanya memproses tx yang sukses operation.js Stream operasi → tabel operation + pembuatan Akun khusus Jenis 0 (create_account) membedakan Pioneer vs CoreTeam effect.js Modul paling kritis. Menangani pembaruan saldo, trustline, penerima klaim/penahanan Kredit/Debit, pembuatan/penghapusan trustline, saldo dapat diklaim, penahanan, status penerima klaim database.js Pool koneksi MySQL + wrapper ex_sql() dan query() Campuran koneksi pool dan koneksi tunggal firestore.js Inisialisasi Firebase Admin (dari env) Mengirim statistik ke Firestore 5. Skema Database (database.sql) 6 tabel utama: Account → public_key, balance, Role (Pioneer/CoreTeam), lock, created_at asset → Pelacakan trustline (aset non-native) block → Ringkasan setiap ledger (termasuk waktu spend) claimant → Mekanisme penahanan/klaim Pi (lock_time, unlock_time, status 0/1/2, claimed_at) fee → Biaya transaksi operation → Semua operasi (dengan type_i) Penanganan Khusus (di modul Effect): Kredit/debit saldo native Pembuatan/penghapusan trustline Pembuatan saldo dapat diklaim (penahanan) Klaim penerima klaim (status 1 = klaim normal, 2 = clawback oleh Core Team) 6. Konfigurasi (.env.example) HORIZON_URL=https://t.co/knkyx5qMhh FIRST_ACCOUNT=GDL35MYH4XX2KH4T5AILQQC2FN4NIOQF2QNKXKX74R2B2XHWWWQ4SFU4 # Cursor (siap untuk jalankan pertama kali) LEDGER_CURSOR=8589934592 TX_CURSOR=60129546240 OP_CURSOR=60129546240 EFFECT_CURSOR=1 pre_time=2020-12-31T22:47:31Z # MySQL DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=explorepi DB_USERNAME=... DB_PASSWORD=... # Firebase (Firestore) FIRESTOREID=... FIRESTORE_EMAIL=... FIRESTORE_KEY=... 7. Mesin Analitik (getdata.js) Skrip terjadwal terpisah (menggunakan node-schedule): Menjalankan query spesifik setiap jam/hari. Mengirim hasil ke dokumen Firestore statistic/data. Menghitung metrik kaya: 10 akun terkaya (setelah biaya) Waktu blok (harian/bulanan) Pengirim pembayaran teratas Pembayar biaya teratas Distribusi operasi Statistik claimant/penahanan (diklaim, ditarik kembali, periode penahanan, dll.) Pengguna aktif harian, pembayaran harian, biaya harian Total Pi, Total Terkunci, Total Pioneer, dll. Situs web membaca data ini langsung dari Firestore → dashboard sangat cepat. Proyek referensi sangat berharga bagi siapa pun yang ingin melakukan analisis data di ekosistem Pi. @nkokkalis @inanjaccuse @Gerek_yokkikiki @mehmetozal @erdincdincer13 @incegorbaskan @tekin63081 @Chengdiao @DrChengdiaoFan @PiCoreTeam @krakenfx #PiNetwork #CiDiGames #Web3Gaming

Penafian: Informasi pada halaman ini mungkin telah diperoleh dari pihak ketiga dan tidak mencerminkan pandangan atau opini KuCoin. Konten ini disediakan hanya untuk tujuan informasi umum, tanpa representasi atau jaminan apa pun, dan tidak dapat ditafsirkan sebagai saran keuangan atau investasi. KuCoin tidak bertanggung jawab terhadap segala kesalahan atau kelalaian, atau hasil apa pun yang keluar dari penggunaan informasi ini. Berinvestasi di aset digital dapat berisiko. Harap mengevaluasi risiko produk dan toleransi risiko Anda secara cermat berdasarkan situasi keuangan Anda sendiri. Untuk informasi lebih lanjut, silakan lihat Ketentuan Penggunaan dan Pengungkapan Risiko.