Genel Bakış
OrbitFlare Jetstream, Solana işlemlerinin gerçek zamanlı olarak akışını sağlayan yüksek performanslı bir gRPC hizmetidir. Minimum gecikmeli beslemeyi zengin ve 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.Ö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 işlem 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
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.
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, 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’den Geçiş
Önceki Jetstream v1 protokolü kullanımdan kaldırılmıştır ancak mevcut entegrasyonlar için hâlâ kullanılabilir. v1 kullanıyorsanız, her iki hizmet de aynı uç noktalarda yan yana çalışır, bu nedenle geçiş, ağ değişikliği olmayan istemci tarafı bir protokol değişikliğidir. Alan alan eşleme için bkz. v1’den Geçiş veya kullanımdan kaldırılan v1 genel bakışı.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
v1'den Geçiş
Alan alan v1-Jetstream eşlemesi ve her yeteneğin size ne kazandırdığı.
Protokol Referansı
Tam Protocol Buffer belirtimi, uç noktalar ve kod oluşturma.
Jetstream v1 (kullanımdan kaldırıldı)
Kullanımdan kaldırılan v1 genel bakışı, istemci örnekleri ve filtreleme kılavuzu.
Yellowstone gRPC
İç talimatlar ve eksiksiz meta verilerle Geyser tabanlı tam kapsamlı akış.