Ana içeriğe atla

Kurulum

İstemciyi oluşturma

URL, 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). Her TransactionFilter; AccountInclude, AccountExclude ve AccountRequired sunar.

Akışı okuma

Subscribe, bir *jetstream.Stream döndürür. Next(ctx) çağırın:
Kapatma, birden çok akış, yeniden bağlanma ve ping/pong, gRPC istemcisi ile birebir aynı çalışır.

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 Sequence taşı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ışı.
v2 istemcisi 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.
Bir filtre, 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.
Tam protobuf spesifikasyonu, mesaj biçimleri, zenginleştirme alanları ve slot durumları için JetStream v2 Protokol Referansı’na bakın.