Skip to main content

Genel Bakış

OrbitFlare Jetstream v2, Solana işlemlerinin gerçek zamanlı olarak akışını sağlayan yüksek performanslı bir gRPC hizmetidir. v1 ile aynı minimum gecikmeli beslemeyi daha zengin ve daha esnek bir protokol üzerinden sunar: aboneliğinizi anında ayarlamanıza ve önceden hesaplanmış işlem meta verilerini almanıza olanak tanır, böylece istemciniz daha az iş yapar. v2, v1 ile aynı uç noktalarda sunulur (JetstreamV2 hizmeti, aynı bağlantı üzerinden gRPC metot yoluna göre yönlendirilir), bu nedenle ağ kurulumunuzla ilgili hiçbir şey değişmez; yalnızca istemci oluşturduğunuz protokol değişir.

Öne Çıkanlar

  • Dinamik filtreler — akış açıkken filtre ekleyin ve kaldırın, her biri istemci tarafından seçilen bir filter_id ile eşleşen her işlemde geri yansıtılır. Yeniden bağlanma gerekmez ve her değişiklik bir FilterResult ile onaylanır.
  • İsteğe bağlı zenginleştirmefee_payer, writable_accounts, program_ids, compute_unit_price (işlem birimi fiyatı, mikro-lamport/CU; toplam ücret değil), compute_limit, tx_size ve çözümlenmiş adres arama tablosu adreslerini, istemci tarafında yeniden türetmek yerine doğrudan her işlemde isteyin.
  • Slot yaşam döngüsü akışı — özel bir SubscribeSlots akışı, mevcut lider ve üst slot ile birlikte slot başına ALIVE / COMPLETE / DEAD olayları yayınlar.
  • Yerleşik canlılık — her mesaj, boşluk tespiti için monoton bir sequence numarası taşır ve sunucu, boşta olan bir işlem akışında bir Heartbeat yayınlar.
  • Talep üzerine zenginleştirme — bir v2 işlemi varsayılan olarak temel alanlarla birlikte tek bir düz mesajdır; ek alanları istediğinizde eklemek için abonelik başına zenginleştirmeyi açın.
Her yeteneğin tam yan yana dökümü ve her birinin size ne kazandırdığı için bkz. v2’de Yeni Neler Var.

Kimlik Doğrulama

Kimlik doğrulama v1 ile aynıdır: API anahtarınızı x-token gRPC meta veri başlığında sağlayın veya IP beyaz listesi kimlik doğrulamasını kullanın. Kurulum ayrıntıları için bkz. Kimlik Doğrulama.

Bağlanma

  1. Altyapınıza en yakın bölge uç noktasını seçin (v1 ile aynı ana bilgisayarlar).
  2. jetstream.v2 protobuf tanımından bir istemci oluşturun; bkz. referanstaki Kod Oluşturma.
  3. x-token API anahtarınızla (veya beyaz listeye alınmış bir IP’den) kimlik doğrulaması yapın ve bir akış açın.

Akış nasıl çalışır

SubscribeTransactions, çift yönlü bir akıştır; aboneliğinizi, verileri aldığınız aynı bağlantıyla yönetirsiniz:
  1. Akışı açın ve bir veya daha fazla filtre içeren bir AddFilters isteği gönderin. Her filtrenin account_include / account_exclude / account_required alanlarından en az birine ihtiyacı vardır. (Boş, her şeyle eşleşen filtreler reddedilir.) account_required herhangi-biri anlamındadır; bir işlem, listelenen hesaplardan en az birine başvuruyorsa eşleşir (account_include ile aynı ve v1 ile aynı), hepsine değil.
  2. Sunucu, filtre başına bir FilterResult ile yanıt verir (accepted veya bir rejection_reason).
  3. Eşleşen işlemler, eşleştikleri filter_id değerlerini listeleyen FilteredTransaction mesajları olarak gelir.
  4. Aldıklarınızı değiştirmek için istediğiniz zaman AddFilters / RemoveFilters gönderin; yeniden bağlanma yok.
  5. Boşta olan bir işlem akışında sunucu Heartbeat mesajları gönderir; canlılığı doğrulamak için bunları (ve Ping/Pong kullanın).
  6. Herhangi bir boşluğu tespit etmek için sequence numarasını izleyin ve akış kapanırsa yeniden bağlanın (filtrelerinizi yeniden göndererek).
Zenginleştirilmiş işlemler almak için bir filtrede include_enrichment: true ayarlayın.
Zenginleştirme abonelik genelindedir: aktif filtrelerinizden herhangi biri include_enrichment ayarlarsa, oturumun aldığı her işlem zenginleştirilir. Ek alanları istediğinizde abonelik başına açın; akışa hiç gecikme eklemez; tek fark biraz daha büyük bir mesajdır.

Slot olayları

Her slot geçişi için bir SlotEvent almak üzere SubscribeSlots (ayrı bir, sunucu akışlı RPC, parametresiz) açın:
  • ALIVE — slotun ilk parçası (shred) alındı.
  • COMPLETE — slotun son parçası (shred) alındı.
  • DEAD — slot atlandı veya tamamlanmadan sonraki slotlar tarafından geçersiz kılındı.
Her olay, current_leader (mevcut lider kullanılabilir olduğunda 32 baytlık pubkey) ve parent_slot içerir.

v1 veya v2’yi seçme

v2, yeni entegrasyonlar için önerilen protokoldür; zenginleştirme, slot olayları ve dinamik filtreleme burada bulunur. v1 kullanılabilir ve desteklenmeye devam eder; mevcut bir v1 istemciniz varsa henüz zorunlu bir geçiş yoktur. İki hizmet, aynı uç noktalarda yan yana çalışır.

En İyi Uygulamalar

  1. Filtreleme — her zaman en az bir hesap kısıtlaması ayarlayın ve eşleşmeleri ilişkilendirebilmek ve filtreleri daha sonra kaldırabilmek için filtre başına kararlı ve benzersiz bir filter_id kullanın.
  2. Zenginleştirme — ek alanlara ihtiyacınız olmadıkça kapalı tutun; tüm aboneliğe uygulanır.
  3. Yeniden Bağlanma — boşluklar için sequence izleyin ve filtrelerinizi yeniden göndererek otomatik olarak yeniden bağlanın.
  4. Canlılık — durmuş bir bağlantıyı tespit etmek için Heartbeat / Ping kullanın.

Ayrıca Bakınız

v2'de Yeni Neler Var

Tam v1-v2 karşılaştırması ve her yeteneğin size ne kazandırdığı.

v2 Protokol Referansı

Tam v2 Protocol Buffer belirtimi, uç noktalar ve kod oluşturma.

Jetstream (v1)

v1 genel bakışı, istemci örnekleri ve filtreleme kılavuzu.

Yellowstone gRPC

İç talimatlar ve eksiksiz meta verilerle Geyser tabanlı tam kapsamlı akış.

Destek

Jetstream v2 hakkında teknik destek veya sorularınız için lütfen destek ekibimizle iletişime geçin ya da Discord topluluğumuza katılın.