Ana içeriğe atla

Parametreler

startSlot
number
gerekli
Başlangıç slotu (dahil)
limit
number
gerekli
Döndürülecek maksimum blok sayısı
config
object
Aşağıdaki isteğe bağlı alanları içeren yapılandırma nesnesi:

Yanıt

result
array
Artan sırayla blok slotları dizisi

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": "getBlocksWithLimit",
  "params": [
    100000000,
    10
  ]
}'

Onay Seviyesiyle İ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": "getBlocksWithLimit",
  "params": [
    100000000,
    10,
    {
      "commitment": "finalized"
    }
  ]
}'

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 10 blocks starting from slot
const blocks = await connection.getBlocksWithLimit(100000000, 10);
console.log('Blocks:', blocks);

// Get finalized blocks
const finalizedBlocks = await connection.getBlocksWithLimit(100000000, 10, 'finalized');
console.log('Finalized blocks:', finalizedBlocks);

Notlar

  1. Belirtilen slottan itibaren onaylanmış blokları döndürür
  2. Sonuçlar artan sırayla döndürülür
  3. Limit, döndürülecek maksimum blok sayısını kontrol eder
  4. Bazı slotlar atlanmış olabilir (blok üretilmemiş)
  5. Mevcut durumdan okuduğu için yanıt anında gelir

En İyi Uygulamalar

  1. İhtiyacınıza göre uygun onay seviyesini kullanın:
    • En son bloklar için processed
    • Yüksek olasılıklı kesinlik için confirmed
    • Garantili kesinlik için finalized
  2. Zaman aşımını önlemek için limiti makul tutun
  3. getBlocks yerine sayfalama için bu metodu kullanın
  4. RPC yükünü azaltmak için uygun durumlarda sonuçları önbelleğe alın
  5. Uygulama mantığınızda atlanan slotları yönetin

Yaygın Hatalar

KodMesajÇözüm
-32602Invalid param: limit must be positiveLimitin 0’dan büyük olduğundan emin olun
-32602Invalid param: limit too largeLimit boyutunu küçültün
-32601Method not foundBir Solana RPC düğümüne bağlı olduğunuzu doğrulayın
-32007Block information unavailableDüğüm başlatılıyor veya slot çok eski olabilir

Kullanım Senaryoları

  1. Blok Sayfalama
    async function getBlocksPaginated(startSlot: number, pageSize: number) {
      const blocks = await connection.getBlocksWithLimit(startSlot, pageSize);
      const lastBlock = blocks[blocks.length - 1];
      
      return {
        blocks,
        nextStartSlot: lastBlock ? lastBlock + 1 : null
      };
    }
    
  2. Son Blok Geçmişi
    async function getRecentBlocks(count: number) {
      const currentSlot = await connection.getSlot();
      const blocks = await connection.getBlocksWithLimit(currentSlot - count, count);
      
      return blocks.map(slot => ({
        slot,
        timestamp: new Date() // Add actual timestamp if available
      }));
    }
    
  3. Blok Akışı
    async function* streamBlocks(startSlot: number, batchSize: number) {
      let currentSlot = startSlot;
      
      while (true) {
        const blocks = await connection.getBlocksWithLimit(currentSlot, batchSize);
        if (blocks.length === 0) {
          break;
        }
        
        yield blocks;
        currentSlot = blocks[blocks.length - 1] + 1;
      }
    }