ระบบ 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 | ถัดไป: คำถามที่พบบ่อย →