source avatarπ

แชร์
Share IconShare IconShare IconShare IconShare IconShare IconCopy

✅ การวิเคราะห์เชิงลึกของ Crawler (CrawlPi) รีโพสิทอรี: https://t.co/DjKmIYN0OD 1. วัตถุประสงค์ทั่วไป CrawlPi เป็นโปรแกรมดึงข้อมูลแบบเรียลไทม์ที่เขียนด้วย Node.js ซึ่งดึงข้อมูลจาก Pi Blockchain (ที่ใช้ Stellar เป็นพื้นฐาน) เป้าหมายหลักคือการดึงข้อมูลทั้งหมดที่จำเป็น (บล็อก รายการธุรกรรม การดำเนินการ ผลลัพธ์ ยอดคงเหลือ ผู้รับสิทธิ์/การล็อกอัป ฯลฯ) และจัดเก็บไว้ใน MySQL พร้อมส่งข้อมูลวิเคราะห์/สถิติไปยัง Firebase Firestore เพื่อใช้บนเว็บไซต์ ExplorePi ต่างจาก pi-explorer อย่างเป็นทางการ ซึ่งมีฐานข้อมูลดัชนีของตนเอง → ช่วยให้สามารถสร้างแดชบอร์ดและการวิเคราะห์ที่เร็วและอุดมสมบูรณ์กว่ามาก 2. สแต็กเทคโนโลยี ส่วนประกอบ | เทคโนโลยีที่ใช้ ---|--- Runtime | Node.js Blockchain | stellar-sdk + Pi Horizon API Database | MySQL (mysql2) Analytics DB | Firebase Firestore Scheduler | node-schedule (ใน getdata.js) Config | .env + dotenv Dependencies (package.json): stellar-sdk, mysql2, firebase-admin, dotenv, node-schedule 3. ตรรกะการทำงาน (index.js) // ไฟล์หลัก block.block() // สตรีม Ledger effect.crawl() // สตรีม Effect operation.operation() // สตรีม Operation tx.transaction() // สตรีม Transaction (ค่าธรรมเนียม) ใช้ระบบสตรีม (server.ledgers().stream(), .transactions().stream() เป็นต้น) เขียนข้อมูลลงใน MySQL ทันทีเมื่อมีบล็อก/การดำเนินการ/ผลลัพธ์ใหม่ รองรับการดำเนินการต่อเนื่องอย่างราบรื่นผ่านระบบ cursor (จัดเก็บไว้ใน .env) กด q เพื่อปิดระบบอย่างเหมาะสม — จะบันทึก cursor ล่าสุดลงในไฟล์ last.txt 4. โมดูล (โฟลเดอร์ lib/) — รายละเอียด ไฟล์ | หน้าที่ | หมายเหตุสำคัญ ---|---|--- block.js | สตรีม Ledger (บล็อก) → เขียนลงตาราง block | ระยะเวลาบล็อก (spend), ยอด Pi รวม, สระค่าธรรมเนียม, จำนวนธุรกรรมสำเร็จ/ล้มเหลว transaction.js | บันทึกค่าธรรมเนียมของธุรกรรมที่สำเร็จลงตาราง fee | ประมวลผลเฉพาะธุรกรรมที่สำเร็จเท่านั้น operation.js | สตรีม Operation → ตาราง operation + การสร้างบัญชีพิเศษ | ประเภท 0 (create_account) แยกแยะระหว่าง Pioneer กับ CoreTeam effect.js | โมดูลสำคัญที่สุด จัดการอัปเดตยอดคงเหลือ, trustlines, claimants/lockups | การเครดิต/เดบิต, การสร้าง/ลบ trustline, ยอดคงเหลือที่สามารถเรียกร้องได้, การล็อก, สถานะผู้รับสิทธิ์ database.js | บ่อนเชื่อมต่อ MySQL + ตัวห่อ ex_sql() และ query() | ผสมระหว่างการเชื่อมต่อแบบบ่อนและแบบเดี่ยว firestore.js | เริ่มต้น Firebase Admin (จาก env) | ส่งสถิติไปยัง Firestore 5. โครงสร้างฐานข้อมูล (database.sql) ตารางหลัก 6 ตาราง: Account → public_key, balance, Role (Pioneer/CoreTeam), lock, created_at asset → การติดตาม trustline (สินทรัพย์ที่ไม่ใช่แบบดั้งเดิม) block → สรุปของแต่ละ ledger (รวมถึงเวลาใช้งาน) claimant → cơ chếการล็อกอัป/เรียกร้อง Pi (lock_time, unlock_time, status 0/1/2, claimed_at) fee → ค่าธรรมเนียมธุรกรรม operation → การดำเนินการทั้งหมด (พร้อม type_i) การจัดการพิเศษ (ในโมดูล Effect): - เครดิต/เดบิตยอดคงเหลือแบบดั้งเดิม - การสร้าง/ลบ trustline - การสร้างยอดคงเหลือที่สามารถเรียกร้องได้ (lockup) - การเรียกร้องผู้รับสิทธิ์ (สถานะ 1 = การเรียกร้องปกติ, 2 = การยึดคืนโดย Core Team) 6. การตั้งค่า (.env.example) HORIZON_URL=https://t.co/knkyx5qMhh FIRST_ACCOUNT=GDL35MYH4XX2KH4T5AILQQC2FN4NIOQF2QNKXKX74R2B2XHWWWQ4SFU4 # Cursors (พร้อมสำหรับการรันครั้งแรก) 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. เครื่องมือวิเคราะห์ข้อมูล (getdata.js) สคริปต์ที่กำหนดเวลาทำงานแยกต่างหาก (ใช้ node-schedule): - รันคำสั่งสอบถามเฉพาะรายชั่วโมง/วัน - ส่งผลลัพธ์ไปยังเอกสาร statistic/data ใน Firestore - คำนวณเมตริกที่หลากหลาย: - อันดับบัญชีที่ร่ำรวยที่สุด 10 อันดับแรก (หลังหักค่าธรรมเนียม) - เวลาบล็อก (รายวัน/รายเดือน) - ผู้ส่งการชำระเงินรายใหญ่ที่สุด - ผู้จ่ายค่าธรรมเนียมรายใหญ่ที่สุด - การกระจายของการดำเนินการ - สถิติผู้รับสิทธิ์/การล็อกอัป (จำนวนที่เรียกร้องแล้ว, ถูกยึดคืน, ระยะเวลาการล็อก เป็นต้น) - ผู้ใช้งานรายวัน, การชำระเงินรายวัน, ค่าธรรมเนียมรายวัน - ยอด Pi รวม, ยอดที่ถูกล็อก, จำนวนผู้บุกเบิก เป็นต้น เว็บไซต์อ่านข้อมูลนี้โดยตรงจาก Firestore → แดชบอร์ดทำงานได้อย่างรวดเร็วมาก เป็นโครงการอ้างอิงที่มีคุณค่าอย่างยิ่งสำหรับผู้ที่ต้องการทำวิเคราะห์ข้อมูลในระบบนิเวศของ Pi @nkokkalis @inanjaccuse @Gerek_yokkikiki @mehmetozal @erdincdincer13 @incegorbaskan @tekin63081 @Chengdiao @DrChengdiaoFan @PiCoreTeam @krakenfx #PiNetwork #CiDiGames #Web3Gaming

แหล่งที่มา:แสดงต้นฉบับ
คำปฏิเสธความรับผิดชอบ: ข้อมูลในหน้านี้อาจได้รับจากบุคคลที่สาม และไม่จำเป็นต้องสะท้อนถึงมุมมองหรือความคิดเห็นของ KuCoin เนื้อหานี้จัดทำขึ้นเพื่อวัตถุประสงค์ในการให้ข้อมูลทั่วไปเท่านั้น โดยไม่มีการรับรองหรือการรับประกัน และจะไม่ถูกตีความว่าเป็นคำแนะนำทางการเงินหรือการลงทุน KuCoin จะไม่รับผิดชอบต่อความผิดพลาดหรือการละเว้นในเนื้อหา หรือผลลัพธ์ใดๆ ที่เกิดจากการใช้ข้อมูลนี้ การลงทุนในสินทรัพย์ดิจิทัลอาจมีความเสี่ยง โปรดประเมินความเสี่ยงของผลิตภัณฑ์และความเสี่ยงที่คุณยอมรับได้อย่างรอบคอบตามสถานการณ์ทางการเงินของคุณเอง โปรดดูข้อมูลเพิ่มเติมได้ที่ข้อกำหนดการใช้งานและเอกสารเปิดเผยข้อมูลความเสี่ยงของเรา