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ış (Retry, Timeout, Keepalive, PingInterval, MaxMissedPongs, ChannelCapacity, Logger).
Abonelik oluşturma
JetStream, işlem filtrelerini destekler (slot, blok veya commitment yoktur - bunlar Yellowstone’a özgüdür). HerTransactionFilter; AccountInclude, AccountExclude ve AccountRequired sunar.
Akışı okuma
Subscribe, bir *jetstream.Stream döndürür. Next(ctx) çağırın:
Tam örnek
Raydium AMM takaslarını izleyip her işlemin slotunu yazdıran bir akış.JetStream v2
JetStream v2 (github.com/orbitflare/orbitflare-sdk-go/jetstream/v2), v1 ile aynı uç noktalarda ve kimlik doğrulamada çalışır ve tamamen eklemelidir: v1 değişmeden çalışmaya devam eder. v2’nin eklediği:
- Çalışma zamanında yönetilen filtreler - canlı bir akışta yeniden bağlanmadan filtre ekleyip kaldırma.
- Mesaj başına sıra numaraları - her yanıt monoton bir
Sequencetaşır; böylece atlanan mesajları tespit edebilirsiniz. - İsteğe bağlı zenginleştirme - işlem başına ücret ödeyeni, program id’lerini, compute unit fiyatını, hesaplama sınırını, çö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ındadır. Builder, v1 ile aynıdır (aynı yöntemler, varsayılanlar, ORBITFLARE_JETSTREAM_URL ortam değişkeni ve yedek uç nokta geçişi):
Tiplenmiş filtreler oluşturma
Her filtre, istemcinin seçtiği bir id’ye (.WithID() ile) sahip bir TransactionFilter’dır. Bu id, eşleşen her işlemde ve filtre doğrulama onayında geri döner; böylece eşleşmeleri ilişkilendirebilir ve filtreyi sonradan kaldırabilirsiniz.
AccountInclude, AccountExclude veya AccountRequired’dan 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: etkin herhangi bir filtre onu etkinleştirirse, aldığınız her işlem zenginleştirilir.
İşlemlere abone olma
Canlı bir akışta filtreleri yönetme
Akıştan bir tutamaç alın ve yeniden bağlanmadan filtre ekleyip kaldırın. Kaldırma,.WithID() ile atadığınız filtre id’sine başvurur.
stream.AddFilters(...) ve stream.RemoveFilters(...), aynı işlemin kısayollarıdır. Akış kapatılmışsa her biri bir hata döndürür.
Slot yaşam döngüsü olayları
SubscribeSlots(), ayrı bir sunucu akışıdır ve filtre almaz.
Sağlık probları
GetVersion(ctx) ve Ping(ctx, count), akışlarla aynı yedek uç nokta geçişine sahip birer unary çağrıdır.