Kurulum
İ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; account_include, account_exclude ve account_required sunar ve string benzeri değerlerden oluşan herhangi bir yineleyiciyi (iterator) kabul eder.
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 (orbitflare_sdk::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 altında bulunur. 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 (.with_id() 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.
account_include, account_exclude veya account_required alanlarından en az birini ayarlamalıdır; boş (her şeyle eşleşen) filtreler reddedilir. include_enrichment 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,.with_id() ile atadığınız filtre kimliğine başvurur.
Slot yaşam döngüsü olayları
subscribe_slots() ayrı bir sunucu akışıdır ve filtre almaz.
Sağlık probları
get_version() ve ping(), akışlarla aynı yük devretmeye sahip tekil (unary) çağrılardır.