Kurulum
@grpc/grpc-js ve yaml isteğe bağlı peer bağımlılıklardır. Yalnızca JetStream (veya YAML yapılandırması) kullanıyorsanız kurun.
İstemciyi oluşturma
ORBITFLARE_JETSTREAM_URL ortam değişkenine düşer. Tüm builder yöntemleri gRPC istemcisi ile aynıdır - aynı varsayılanlar, aynı davranış.
YAML yapılandırması yazma
JetStream işlem ve hesap filtrelerini destekler. Slot, blok veya taahhüt yok - bunlar Yellowstone’a özgüdür.YAML filtre referansı
transactions - adlı filtreler. account_include, bu adresleri içeren işlemlerle eşleşir. account_exclude eşleşmeleri çıkarır. account_required listelenen tüm adreslerin görünmesini gerektirir.
accounts - account ile belirli adresleri veya owner ile bir programa ait tüm hesapları izleyin.
${ENV_VAR} genişletmesini destekler.
Olaylara abone olma ve okuma
YAML’dan
Programatik olarak
Tiplenmiş builder ile
SubscribeRequestBuilder ve TransactionFilter, proto’yu elle yazmadan aynı isteği oluşturur. Her TransactionFilter; accountInclude, accountExclude ve accountRequired sunar, böylece filtre şekli üzerinde otomatik tamamlama ve derleme zamanı denetimi elde edersiniz.
Akışı okuma
Tam örnek
Raydium AMM takaslarını izleyen ve her işlemin imzası ile talimat sayısını yazdıran bir akış.jetstream.yml ile:
JetStream v2
JetStream v2, v1 ile aynı uç noktalar ve kimlik doğrulama üzerinde çalışır ve tamamen eklemelidir: v1 değişmeden çalışmaya devam eder. v2’nin eklediği özellikler:- Çalışma zamanında yönetilen filtreler - canlı bir akışta yeniden bağlanmadan filtre ekleyin ve kaldırın.
- Mesaj başına sıra numaraları - her yanıt monotonik bir
sequencetaşır, böylece düşen mesajları tespit edebilirsiniz. - İsteğe bağlı zenginleştirme - işlem başına ücret ödeyeni, program kimliklerini, hesaplama birimi fiyatını, hesaplama limitini, çözümlenmiş adres tablosu adreslerini ve daha fazlasını isteyin.
- Slot yaşam döngüsü olayları - slot alive/complete/dead olaylarının ayrı bir sunucu akışı.
jetstream/v2 giriş noktasından içe aktarın. Builder, v1 ile aynıdır (aynı yöntemler, varsayılanlar, ORBITFLARE_JETSTREAM_URL ortam değişkeni ve yük devretme):
Tiplenmiş filtreler oluşturma
Her filtre, istemci tarafından seçilen bir kimliğe (.withId() ile) sahip bir TransactionFilter’dır. Bu kimlik, eşleşen her işlemde ve filtre doğrulama onayında geri yansıtılır, böylece eşleşmeleri ilişkilendirebilir ve filtreyi daha sonra kaldırabilirsiniz.
accountInclude, accountExclude veya accountRequired alanlarından en az birini ayarlamalıdır; boş (her şeyle eşleşen) filtreler reddedilir. includeEnrichment isteğe bağlıdır (varsayılan kapalı) ve tüm aboneliğe uygulanır: herhangi bir etkin filtre bunu etkinleştirirse, aldığınız her işlem zenginleştirilir.
İşlemlere abone olma
Canlı bir akışta filtreleri yönetme
Akıştan bir handle alın ve yeniden bağlanmadan filtre ekleyin veya kaldırın. Kaldırmalar,.withId() ile atadığınız filtre kimliğine başvurur.
Slot yaşam döngüsü olayları
subscribeSlots() ayrı bir sunucu akışıdır ve filtre almaz.
Sağlık probları
getVersion() ve ping(), akışlarla aynı yük devretmeye sahip tekil (unary) çağrılardır.