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_idile eşleşen her işlemde geri yansıtılır. Yeniden bağlanma gerekmez ve her değişiklik birFilterResultile onaylanır. - İsteğe bağlı zenginleştirme —
fee_payer,writable_accounts,program_ids,compute_unit_price(işlem birimi fiyatı, mikro-lamport/CU; toplam ücret değil),compute_limit,tx_sizeve çö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
SubscribeSlotsakışı, mevcut lider ve üst slot ile birlikte slot başınaALIVE/COMPLETE/DEADolayları yayınlar. - Yerleşik canlılık — her mesaj, boşluk tespiti için monoton bir
sequencenumarası taşır ve sunucu, boşta olan bir işlem akışında birHeartbeatyayı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.
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
- Altyapınıza en yakın bölge uç noktasını seçin (v1 ile aynı ana bilgisayarlar).
jetstream.v2protobuf tanımından bir istemci oluşturun; bkz. referanstaki Kod Oluşturma.x-tokenAPI 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:
- Akışı açın ve bir veya daha fazla filtre içeren bir
AddFiltersisteği gönderin. Her filtreninaccount_include/account_exclude/account_requiredalanlarından en az birine ihtiyacı vardır. (Boş, her şeyle eşleşen filtreler reddedilir.)account_requiredherhangi-biri anlamındadır; bir işlem, listelenen hesaplardan en az birine başvuruyorsa eşleşir (account_includeile aynı ve v1 ile aynı), hepsine değil. - Sunucu, filtre başına bir
FilterResultile yanıt verir (acceptedveya birrejection_reason). - Eşleşen işlemler, eşleştikleri
filter_iddeğerlerini listeleyenFilteredTransactionmesajları olarak gelir. - Aldıklarınızı değiştirmek için istediğiniz zaman
AddFilters/RemoveFiltersgönderin; yeniden bağlanma yok. - Boşta olan bir işlem akışında sunucu
Heartbeatmesajları gönderir; canlılığı doğrulamak için bunları (vePing/Pongkullanın). - Herhangi bir boşluğu tespit etmek için
sequencenumarasını izleyin ve akış kapanırsa yeniden bağlanın (filtrelerinizi yeniden göndererek).
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 birSlotEvent 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ı.
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
- 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_idkullanın. - Zenginleştirme — ek alanlara ihtiyacınız olmadıkça kapalı tutun; tüm aboneliğe uygulanır.
- Yeniden Bağlanma — boşluklar için
sequenceizleyin ve filtrelerinizi yeniden göndererek otomatik olarak yeniden bağlanın. - Canlılık — durmuş bir bağlantıyı tespit etmek için
Heartbeat/Pingkullanı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ış.