Documentation Index
Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
Use this file to discover all available pages before exploring further.
Parametreler
Bu metod herhangi bir parametre almaz.
Yanıt
Mevcut en düşük onaylanmış bloğun slotu
Kod Örnekleri
Temel İstek
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getFirstAvailableBlock"
}'
web3.js Kullanımı
import { Connection } from '@solana/web3.js';
const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');
// Get first available block
const firstBlock = await connection.getFirstAvailableBlock();
console.log('First available block:', firstBlock);
// Get block range
async function getAvailableBlockRange() {
const firstBlock = await connection.getFirstAvailableBlock();
const currentSlot = await connection.getSlot();
return {
firstBlock,
currentSlot,
totalBlocks: currentSlot - firstBlock + 1
};
}
Notlar
- Mevcut en düşük onaylanmış bloğun slotunu döndürür
- Düğümün mevcut geçmişini belirlemek için kullanışlıdır
- Değer, düğüm eski blokları budadıkça değişebilir
- Farklı düğümler farklı değerler döndürebilir
- Mevcut durumdan okuduğu için yanıt anında gelir
En İyi Uygulamalar
- Mevcut blok aralığını belirlemek için bu metodu kullanın
- Geçmiş blokları sorgularken düğüm budamasını göz önünde bulundurun
- RPC yükünü azaltmak için uygun durumlarda sonuçları önbelleğe alın
- İstenen blokların mevcut olmadığı durumları yönetin
- Diğer blok metodlarıyla birlikte kullanın
Yaygın Hatalar
| Kod | Mesaj | Çözüm |
|---|
| -32601 | Method not found | Bir Solana RPC düğümüne bağlı olduğunuzu doğrulayın |
| -32007 | Block information unavailable | Düğüm başlatılıyor veya senkronize ediliyor olabilir |
Kullanım Senaryoları
-
Blok Aralığı Doğrulaması
async function verifyBlockRange(startSlot: number, endSlot: number) {
const firstBlock = await connection.getFirstAvailableBlock();
const currentSlot = await connection.getSlot();
if (startSlot < firstBlock) {
throw new Error(`Start slot ${startSlot} is before first available block ${firstBlock}`);
}
if (endSlot > currentSlot) {
throw new Error(`End slot ${endSlot} is after current slot ${currentSlot}`);
}
return {
startSlot,
endSlot,
available: true
};
}
-
Geçmiş Veri Kullanılabilirliği
interface BlockAvailability {
firstAvailable: number;
currentSlot: number;
availableRange: number;
requestedSlot: number;
isAvailable: boolean;
}
async function checkBlockAvailability(slot: number): Promise<BlockAvailability> {
const firstBlock = await connection.getFirstAvailableBlock();
const currentSlot = await connection.getSlot();
return {
firstAvailable: firstBlock,
currentSlot,
availableRange: currentSlot - firstBlock + 1,
requestedSlot: slot,
isAvailable: slot >= firstBlock && slot <= currentSlot
};
}
-
Blok Geçmişi Analizi
async function analyzeBlockHistory() {
const firstBlock = await connection.getFirstAvailableBlock();
const currentSlot = await connection.getSlot();
const blocks = await connection.getBlocks(firstBlock, currentSlot);
const metrics = {
firstBlock,
currentSlot,
totalSlots: currentSlot - firstBlock + 1,
availableBlocks: blocks.length,
missingBlocks: (currentSlot - firstBlock + 1) - blocks.length,
availabilityPercentage: (blocks.length / (currentSlot - firstBlock + 1)) * 100
};
return metrics;
}