คำเตือน สาขา main
กำลังติดตาม V2 เวอร์ชันใหม่นี้เป็นการยกเครื่องที่สมบูรณ์ของไปป์ไลน์การประมวลผลการเปลี่ยนแปลงหลายครั้ง หากคุณกำลังมองหา V1 คุณสามารถเปลี่ยนไปใช้สาขาสนับสนุนระยะยาวชื่อ lts/v1
เรามีเครื่องมือในการ "สำรวจ" cardano blockchain ซึ่งมีประโยชน์เมื่อคุณรู้ว่าคุณกำลังมองหาอะไร เรายืนยันว่ามีกรณีการใช้งานที่แตกต่างกันซึ่งเป็น "สังเกต" blockchain และตอบสนองต่อรูปแบบเหตุการณ์เฉพาะ
Oura เป็นการดำเนินการตามสนิมของท่อส่งก๊าซที่เชื่อมต่อกับปลายของโหนด cardano ผ่านการรวมกันของ uroboros mini-protocol (ใช้ซ็อกเก็ต UNIX หรือผู้ถือ TCP) กรองเหตุการณ์ที่ตรงกับรูปแบบเฉพาะ เพย์โหลดที่มีอยู่ในตัวเองที่มีอยู่ในตัวเองที่เรียกว่า "Sinks"
ตรวจสอบเอกสารของเราสำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีเริ่มทำงานกับ OURA
ชื่อของเครื่องมือได้รับแรงบันดาลใจจากคำสั่ง tail
ที่มีอยู่ในระบบที่มีลักษณะเหมือน Unix ซึ่งใช้เพื่อแสดงปลายหางของไฟล์ข้อความหรือข้อมูล piped ชื่อโปรโตคอลฉันทามติของ Cardano คือ Ouroboros เป็นการอ้างอิงถึงสัญลักษณ์โบราณที่แสดงถึงงูหรือมังกรที่กินหางของตัวเองซึ่งหมายถึง "การกินหาง" "ura" เป็นคำภาษากรีกโบราณสำหรับ "หาง"
ในการบันทึกเทอร์มินัลนี้เราจะได้เห็นเอาต์พุตสดสองสามนาทีจากโหนด testnet ที่เชื่อมต่อกับอ่างเทอร์มินัล
ดู Asciicast เต็มรูปแบบ
การยกหนักทั้งหมดที่จำเป็นในการสื่อสารกับโหนด cardano นั้นทำโดยห้องสมุด Pallas ซึ่งให้การดำเนินการของ multiplexer ของ Ouroboros และ mini-protocol state-machines (chainsync และ localstate โดยเฉพาะ)
Data Pipeline ดำเนินการโดยไลบรารีปะเก็นซึ่งเป็นกรอบสำหรับการสร้างแอพพลิเคชั่นที่ขับเคลื่อนด้วยเหตุการณ์ ภายใต้สิ่งที่เป็นนามธรรมนี้แต่ละองค์ประกอบของไปป์ไลน์ (AKA: Stage ) ทำงานในเธรดของตัวเองและสื่อสารกับขั้นตอนอื่น ๆ โดยการส่งข้อความ (คล้ายกับ รูปแบบนักแสดง )
คุณสามารถเรียกใช้ oura watch <socket>
เพื่อพิมพ์ข้อมูล TX ลงในเทอร์มินัลจากปลายของโหนดท้องถิ่นหรือระยะไกล มันจะมีประโยชน์เป็นเครื่องมือในการดีบั๊กสำหรับนักพัฒนาหรือถ้าคุณอยากรู้อยากเห็นว่าเกิดอะไรขึ้นในเครือข่าย (ตัวอย่างเช่นเพื่อดู Airdrops เมื่อเกิดขึ้นหรือ Oracles โพสต์ข้อมูลใหม่)
เช่นเดียวกับเครื่องมือ DB-Sync ที่รู้จักกันดีที่จัดทำโดย IOHK สามารถใช้เป็น daemon เพื่อติดตามโหนดและส่งออกข้อมูลลงในเทคโนโลยีการจัดเก็บข้อมูลที่แตกต่างกันเหมาะสำหรับกรณีการใช้งานขั้นสุดท้ายของคุณ ความแตกต่างที่สำคัญกับ DB-Sync คือ Oura ได้รับการออกแบบมาเพื่อการรวมเข้ากับท่อส่งข้อมูลแทนฐานข้อมูลเชิงสัมพันธ์
ด้วยรอยเท้าหน่วยความจำ / ซีพียูขนาดเล็ก Oura สามารถปรับใช้แบบเคียงข้างกับโหนด cardano ของคุณแม้ในสภาพแวดล้อมที่มีทรัพยากรที่ จำกัด เช่น Raspberry Pis
OURA ที่ทำงานในโหมด daemon
สามารถกำหนดค่าให้ใช้ตัวกรองที่กำหนดเองเพื่อระบุรูปแบบการทำธุรกรรมเฉพาะและการกระทำทริกเกอร์เมื่อใดก็ตามที่พบการจับคู่ ตัวอย่างเช่น: ส่งอีเมลเมื่อมีการรวมนโยบาย / สินทรัพย์ที่เฉพาะเจาะจงปรากฏในการทำธุรกรรม เรียกฟังก์ชั่น AWS Lambda เมื่อผู้แทนกระเป๋าเงินไปยังสระว่ายน้ำเฉพาะ ส่ง http-call ไปยัง webhook ทุกครั้งที่คีย์ข้อมูลเมตาปรากฏขึ้นในน้ำหนักบรรทุก TX;
หากคุณสมบัตินอกกรอบที่มีอยู่ไม่ตรงกับกรณีการใช้งานของคุณโดยเฉพาะของ คุณ สามารถใช้ห้องสมุดในโครงการสนิมของคุณเพื่อติดตั้งท่อที่ทำขึ้นตามสั่ง แต่ละองค์ประกอบ (แหล่งที่มาตัวกรองอ่างล้างจาน ฯลฯ ) ใน Oura มีจุดมุ่งหมายที่จะอยู่ในตัวเองและนำกลับมาใช้ใหม่ได้ ตัวอย่างเช่นตัวกรองและอ่างล้างมือแบบกำหนดเองสามารถสร้างขึ้นได้ในขณะที่นำแหล่งที่มาที่มีอยู่กลับมาใช้ใหม่
Oura อยู่ในสาระสำคัญของมันเพียงแค่ไปป์ไลน์สำหรับการประมวลผลเหตุการณ์ แต่ละขั้นตอนของท่อมีบทบาทที่แตกต่าง:
ขั้นตอนแหล่งที่มา: มีความรับผิดชอบในการดึงข้อมูลจาก blockchain และทำแผนที่บล็อกดิบให้เป็นเหตุการณ์ที่เล็กกว่าและละเอียดยิ่งขึ้น แต่ละเหตุการณ์จะถูกส่งผ่านพอร์ตเอาต์พุตของเวทีสำหรับการประมวลผลเพิ่มเติม
ขั้นตอนตัวกรอง: รับเหตุการณ์แต่ละรายการจากขั้นตอนต้นทางและใช้การเปลี่ยนแปลงบางอย่างกับแต่ละเหตุการณ์ การแปลงที่ใช้จะขึ้นอยู่กับกรณีการใช้งานเฉพาะ แต่พวกเขามักจะหมุนรอบการเลือกเหตุการณ์ที่เกี่ยวข้องและเพิ่มคุณค่าให้กับข้อมูลเพิ่มเติม
ขั้นตอนการจม: รับเหตุการณ์สุดท้ายจากขั้นตอนตัวกรองและส่งเพย์โหลดไปยังระบบภายนอกฐานข้อมูลหรือบริการสำหรับการประมวลผลเพิ่มเติม
ชนิดข้อมูล
บล็อก CBOR
CBOR TXS
โมเดลของ Oura V1 (สำหรับความเข้ากันได้ย้อนหลัง)
แยกวิเคราะห์ TXS (วัตถุที่มีโครงสร้างพร้อมข้อมูล TX ทั้งหมด)
JSON ทั่วไป (ค่า JSON ทุกชนิด)
แหล่งกำเนิด
โซ่ซิงค์จากโหนดท้องถิ่น
Chain-sync + block-fetch จากโหนดรีเลย์ระยะไกล
ถัง S3 พร้อมข้อมูลบล็อก
หัวข้อ kafka พร้อมข้อมูลบล็อก
อ่างล้างมือ
หัวข้อ kafka
ดัชนี Elasticsearch / สตรีมข้อมูล
หมุนไฟล์บันทึกด้วยการบีบอัด
Redis Streams
AWS SQS คิว
Aws Lambda Call
วัตถุ AWS S3
GCP Pubsub
ฟังก์ชันคลาวด์ GCP
Azure Sinks
WebHook (โพสต์ http)
เทอร์มินัล (ผนวกเท่านั้นหางเหมือน)
ตัวกรอง
แยกวิเคราะห์บล็อก / tx cbor
แยกบล็อกออกเป็น txs
เลือก TXS โดยการจับคู่กฎ (ที่อยู่, ข้อมูลเมตา, นโยบาย, ฯลฯ )
เพิ่มข้อมูล TX ด้วยอินพุตที่เกี่ยวข้อง
รหัส Typescript ที่กำหนดเอง (ใช้ deno)
ปลั๊กอิน WASM ที่กำหนดเอง
ย้อนกลับบัฟเฟอร์พร้อมการชดเชยการกระทำ
อื่น
เคอร์เซอร์โซ่สเตทฟี
เวทีบัฟเฟอร์เพื่อเก็บบล็อกไว้จนกว่าจะถึงความลึกที่แน่นอน
ตัวชี้วัดไปป์ไลน์เพื่อติดตามความคืบหน้าและประสิทธิภาพ
OURA อ่านเหตุการณ์จากบล็อก / ธุรกรรมที่มินต์ การสนับสนุนสำหรับการสอบถาม mempool ยังไม่ได้ใช้งาน
ยินดีต้อนรับการมีส่วนร่วมทั้งหมด แต่โปรดอ่านคู่มือการสนับสนุนของโครงการก่อนที่จะเริ่มรหัส
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache-2.0 โปรดดูไฟล์ใบอนุญาตสำหรับรายละเอียดเพิ่มเติม