Mevcut Uç Noktalar
Jetstream, tüm OrbitFlare bölgelerinde kullanılabilir. En düşük gecikme için altyapınıza en yakın bölgeye bağlanın.- US
- Europe
- Asia Pacific
Jetstream, gRPC bağlantıları için düz
http:// kullanır (https:// değil). gRPC, HTTP/2 üzerinde kendi taşıma
güvenliği müzakeresini kullanır. https:// yalnızca özel düğümünüz bunu açıkça gerektiriyorsa kullanı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.
Ayrıntılar için bkz. Kimlik Doğrulama.
Protocol Buffer Belirtimi
Bu belge, OrbitFlare Jetstream tarafından kullanılan Protocol Buffer (protobuf) belirtimini özetlemektedir. Tam belirtim GitHub depomuzda bulunabilir; istemcinizi oluşturmak içinjetstream_v2.proto dosyasını oradan indirin veya aşağıda çoğaltılan
tanımı kullanın. Protobuf paketinin adı jetstream.v2’dir.
Hizmet Tanımı
İstek Mesajları
SubscribeTransactions, çift yönlü bir akıştır. İstemci, akış açıkken aboneliğini yönetmek için bir dizi istek
mesajı, her biri tam olarak bir yük taşıyan, gönderir.
SubscribeTransactionsRequest
Filtre Ekleme
Filtreler, akış açıkken dinamik olarak eklenir. Her filtre, eşleşen her işlemde ve doğrulama onayında geri yansıtılan, istemci tarafından seçilen birfilter_id taşır.
Bir filtre,
account_include / account_exclude / account_required alanlarından en az birini belirtmelidir.
Boş (her şeyle eşleşen) filtreler reddedilir; bkz. FilterResult.Filtre Kaldırma
Yanıt Mesajları
SubscribeTransactionsResponse
Akıştaki her mesaj, istemcilerin boşlukları tespit edebilmesi için bir sunucu zaman damgası ve monoton olarak artan birsequence numarası (akış başına) taşır. Tam olarak bir yük ayarlanır.
Filtre Doğrulama
HerAddFilters / RemoveFilters sonrasında sunucu, kabulü onaylayan veya reddi açıklayan, filtre başına bir
FilterResult döndürür.
Heartbeat
Filtrelenmiş İşlem
Her eşleşen işlem, eşleştiğifilter_id değerlerini listeler, ardından işlemin kendisi gelir.
Paylaşılan Türler
İşlem sürümleri (SIMD-0385)
Solana’nın üç işlem biçimi vardır:legacy, v0 ve v1 (SIMD-0385). config
alanı (23) ve priority_fee_lamports alanı (24) işlem v1 için eklenmiştir ve
eklemelidir — bu tanımın eski bir kopyasından üretilmiş bir istemci, bunları
bilinmeyen alanlar olarak atlar ve diğer tüm alanları normal şekilde çözümler.
“İşlem v1”, “Jetstream v1” ile aynı şey değildir. İşlem v1, bu mevcut
Jetstream protokolünün tam olarak desteklediği bir Solana işlem biçimidir
(SIMD-0385). “Jetstream v1” ise ayrı, artık kullanımdan kaldırılmış Jetstream
protokolüne atıfta bulunur. Mevcut Jetstream,
işlem v1’i taşıyan protokoldür.
config alanını kontrol edin, çünkü
versioned hem v0 hem de v1 için true’dur:
Slot Akışı
SubscribeSlots, slot yaşam döngüsü olaylarının bir sunucu akışıdır. Parametre almaz; akışı açın ve slotlar
ilerledikçe olayları alın.
Akışsız Metotlar
Protokolü Kullanma
Tipik bir istemci:- Yukarıdaki
jetstream.v2tanımından istemci kodu oluşturur. SubscribeTransactionsçift yönlü akışını açar ve kimlik doğrulaması yapar (x-tokenbaşlığı veya IP beyaz listesi).- Her biri benzersiz bir
filter_idiçeren bir veya daha fazlaTxFiltergirişiyle birAddFiltersisteği gönderir. FilterResultonaylarını, ardındanFilteredTransactionmesajlarının akışını okur.- Akışı yeniden açmadan istediği zaman filtre ekler veya kaldırır.
- Boşlukları tespit etmek için
sequenceizler ve bir bağlantı kapanmasını yeniden bağlanma sinyali olarak değerlendirir. - İsteğe bağlı olarak, slot yaşam döngüsü olayları için
SubscribeSlots(ayrı bir akış) açar.
Kod Oluşturma
TypeScript/JavaScript için:En İyi Uygulamalar
-
Filtreleme
- Her zaman en az bir hesap kısıtlaması ayarlayın; boş filtreler reddedilir.
- Eşleşmeleri ilişkilendirebilmek ve filtreleri daha sonra kaldırabilmek için filtre başına kararlı, benzersiz bir
filter_idkullanın.
-
Zenginleştirme
- Ek alanlara ihtiyacınız olmadıkça
include_enrichmentalanını kapalı bırakın; sade çıktı daha küçüktür. Bunu etkinleştirmek gecikme eklemez; tek maliyet biraz daha büyük bir mesajdır. - Zenginleştirme abonelik genelindedir: herhangi bir filtrede etkinleştirmek, oturumun aldığı her işlemi zenginleştirir.
- Ek alanlara ihtiyacınız olmadıkça
-
Sıra ve Yeniden Bağlanma
- Bırakılan mesajları tespit etmek için
sequencenumarasını izleyin. - Otomatik yeniden bağlanma uygulayın; yeniden bağlanırken
AddFiltersisteğinizi yeniden gönderin.
- Bırakılan mesajları tespit etmek için
-
Canlılık
- Akışın sağlıklı olduğunu doğrulamak ve gecikmeyi ölçmek için
HeartbeatvePing/Pongkullanın.
- Akışın sağlıklı olduğunu doğrulamak ve gecikmeyi ölçmek için
Ayrıca Bakınız
Jetstream Genel Bakış
Akış modeli, zenginleştirme, slot olayları ve başlangıç.
Jetstream v1 Referansı (kullanımdan kaldırıldı)
Kullanımdan kaldırılan v1 Protocol Buffer belirtimi.