ก่อนอื่นต้องทำความรู้จักกับ Logs ของ Blockchain กันก่อน
Logs เป็นข้อมูลที่เกิดขึ้นจากการสั่งดำเนินการเกี่ยวกับ Smart contract ที่อยู่บน Blockchain โดยมี Response ดังนี้
สิ่งที่เป็นประโยชน์สำหรับเราคือ “address“ และ “topics“
“address“ คือเหรียญที่เราสนใจ หรือ erc-20 contract ที่เราสนใจ
“topics“ คือข้อมูล Input สำหรับการเรียกใช้งาน Smart contract ซึ่ง “topics” จะเป็นข้อมูลที่อยู่ในรูปแบบ Array โดยเรียงลำดับจาก 0, 1, 2, 3, …. n โดยทั่วไปแล้วข้อมูลลำดับที่ 0 จะเป็นข้อมูลสำหรับระบุ Event และสำหรับข้อมูลในลำดับถัดไปจะขึ้นอยู่กับ Event
โดยตัวอย่างครั้งนี้เราสนใจ transfer event ของ erc-20 โดยโครงสร้างของ “topics“ จะมีลักษณะดังนี้
สำหรับ Token value ในการ Transfer แต่ละครั้งจะต้อง Convert จากข้อมูล “data“ Hexadecimal เป็น Integer
ข้อมูล Logs เป็นหนึ่งในข้อมูลสำคัญของการทำ On chain data analyst ซึ่งสามารถช่วยให้เราสามารถตอบคำถามยอดนิยมสำหรับการวิเคราะห์ข้อมูลที่น่าสนใจคือ
แต่การวิเคราะห์ข้อมูล On chain นั้นกลับมีความท้าทายหนึ่งเรื่องนั้นคือ Performance and Cost เนื่องจากจำนวนข้อมูลที่ถูกผลิตขึ้นทุกวันในจำนวนมหาศาล ทำให้การวิเคราะห์ข้อมูลนั้นมีความ “แพง“ ในแง่ของการประมวลผล, เวลาและต้นทุน ปัจจุบันมี Analytics tools ที่น่าสนใจอยู่หลากหลายตัว
สำหรับครั้งนี้เราจะสอนใช้งาน TXEngine เป็น Open Source Data Ingestion and Validation ซึ่งสามารถใช้งานร่วมกับ AWS Glue, AWS Athena และ AWS Quicksight เพื่อสร้าง On chain analyst engine (Dune analytics-like) ของตัวเอง https://github.com/vultureprime/tx-engine