Skip to content

ระบบ Keeper

ภาพรวม

ระบบ Keeper เป็นบริการ off-chain อัตโนมัติที่จัดการรอบการตัดรอบรายสัปดาห์ของ JVAULT มันรับประกันการดำเนินการที่เชื่อถือได้และทันเวลาของการดำเนินงานสำคัญทุกวันอาทิตย์

ขั้นตอนการตัดรอบรายสัปดาห์

วันอาทิตย์ 23:50 UTC: ก่อนการตัดรอบ
├── หยุดรับฝากใหม่
├── Snapshot การถอนที่รออยู่  
├── เริ่มการ liquidation ตำแหน่ง

วันอาทิตย์ 00:00 UTC: การดำเนินการตัดรอบ
├── ปิดตำแหน่ง market-making ทั้งหมด
├── คำนวณมูลค่า vault รวม
├── กำหนด NAV ใหม่
├── ประมวลผลคิวการถอน
├── อัปเดตสถานะ on-chain

วันอาทิตย์ 00:30 UTC: หลังการตัดรอบ  
├── โอน USDC ให้ผู้ใช้ที่ถอน
├── เผา JVAULT tokens
├── ปล่อย settlement events
├── กลับสู่การดำเนินงานปกติ

วันอาทิตย์ 01:00 UTC: รอบใหม่
└── นำเงินทุน 80% ไปทำ market-making

สถาปัตยกรรม Keeper

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Cron Scheduler │    │  Position Monitor│    │  Settlement Bot │
│   (AWS Lambda)   │────│   (Real-time)   │────│   (Execution)   │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         │                       │                       │
         ▼                       ▼                       ▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Base L2        │    │   CEX APIs      │    │   Price Feeds   │
│   Smart Contract │    │   (Trading)     │    │   (Oracles)     │
└─────────────────┘    └─────────────────┘    └─────────────────┘

การดำเนินงาน Keeper

1. การติดตามตำแหน่ง 📊

javascript
// Pseudo-code สำหรับการติดตามตำแหน่ง
async function monitorPositions() {
    const positions = await getAllPositions();
    
    for (const position of positions) {
        // ตรวจสอบ PnL และเมตริกความเสี่ยง
        const pnl = calculatePnL(position);
        const risk = assessRisk(position);
        
        // ดำเนินการบริหารความเสี่ยง
        if (risk > THRESHOLD) {
            await closePosition(position);
        }
    }
}

2. การดำเนินการตัดรอบ ⚙️

javascript
// วันอาทิตย์ 00:00 UTC การตัดรอบ
async function executeSettlement() {
    // 1. ปิดตำแหน่งทั้งหมด
    await closeAllPositions();
    
    // 2. คำนวณมูลค่า vault
    const totalValue = await calculateTotalValue();
    const newNAV = totalValue / totalSupply;
    
    // 3. อัปเดต NAV บน chain
    await updateNAVOnChain(newNAV);
    
    // 4. ประมวลผลการถอน
    await processWithdrawalQueue();
    
    // 5. เริ่ม market-making ใหม่
    await deployCapital();
}

3. การประมวลผลการถอน 💸

javascript
async function processWithdrawals() {
    const queue = await getWithdrawalQueue();
    
    for (const request of queue) {
        const usdcAmount = request.shares * currentNAV * 0.9975; // ค่าธรรมเนียม 0.25%
        
        await transferUSDC(request.user, usdcAmount);
        await burnShares(request.shares);
        await markProcessed(request.id);
    }
}

ความซ้ำซ้อนและความเชื่อถือได้

การสำรองหลายชั้น

  • หลัก: AWS Lambda กับการติดตาม CloudWatch
  • รอง: เซิร์ฟเวอร์ local กับ ISP ต่างกัน
  • ที่สาม: ความสามารถในการดำเนินการด้วยมือ
  • ฉุกเฉิน: การแทรกแซงของ Multisig

ระบบติดตาม

  • การติดตามตำแหน่งแบบ real-time
  • การตรวจสอบความถูกต้องของ price feed
  • การตรวจสอบการเชื่อมต่อเครือข่าย
  • การปรับปรุงราคา gas
  • การติดตามการยืนยันทรานแซคชัน

ความปลอดภัยของ Keeper

การควบคุมการเข้าถึง

  • กระเป๋าเงินเฉพาะสำหรับการดำเนินงาน keeper
  • สิทธิ์จำกัด (ไม่มีฟังก์ชัน admin)
  • การจำกัดอัตราและขีดจำกัดการใช้จ่าย
  • การควบคุมฉุกเฉินแบบ multi-signature

การบริหารความเสี่ยง

javascript
const RISK_LIMITS = {
    MAX_POSITION_SIZE: 0.1, // 10% ของ vault
    MAX_DAILY_LOSS: 0.02,   // 2% ของ vault
    MAX_GAS_PRICE: 50,      // 50 gwei
    MIN_RESERVE_RATIO: 0.15 // 15% ขั้นต่ำ
};

สถานการณ์ความล้มเหลว

การหยุดทำงานของ Keeper

  • การ failover อัตโนมัติไปยังระบบสำรอง
  • ขั้นตอนการดำเนินการด้วยมือที่จัดทำเป็นเอกสาร
  • การเปิดใช้งาน multisig ฉุกเฉิน
  • โปรโตคอลการแจ้งชุมชน

ปัญหาเครือข่าย

  • กำหนดค่า RPC endpoints หลายตัว
  • ตรรกะ retry กับ exponential backoff
  • กลยุทธ์การเพิ่มราคา gas
  • การติดตาม cross-chain bridge

ความล้มเหลวของ Oracle

  • แหล่ง price feed หลายแหล่ง
  • การตรวจสอบความสมเหตุสมผลและการตรวจจับค่าผิดปกติ
  • การ fallback ไปยัง oracle ทางเลือก
  • ความสามารถในการตรวจสอบราคาด้วยมือ

แดชบอร์ดการติดตาม

เมตริกแบบ Real-Time

  • สถานะสุขภาพของ Keeper
  • ผลงานตำแหน่ง
  • การติดตาม NAV
  • ขนาดคิวการถอน
  • การปรับปรุงการใช้ gas

การแจ้งเตือน

  • เกณฑ์การขาดทุนตำแหน่ง
  • ปัญหาการเชื่อมต่อเครือข่าย
  • ความล่าช้าในการตัดรอบ
  • การเบี่ยงเบนราคา oracle

การปรับปรุงในอนาคต

การกระจายอำนาจ

  • เครือข่าย keeper กับผู้ดำเนินการหลายราย
  • กลไกจูงใจสำหรับความเชื่อถือได้
  • เงื่อนไข slash สำหรับพฤติกรรมที่ไม่เหมาะสม
  • การกำกับดูแลของชุมชนเหนือพารามิเตอร์

การรวม AI

  • การเรียนรู้ของเครื่องสำหรับการกำหนดเวลาที่เหมาะสม
  • การบริหารความเสี่ยงเชิงทำนาย
  • การปรับพารามิเตอร์แบบไดนามิก
  • การปรับปรุงกลยุทธ์อัตโนมัติ

ก่อนหน้า: ← Smart Contracts | ถัดไป: คำถามที่พบบ่อย →

Released under the MIT License.