Webhooks, WebSocket veya RPC Yoklama Arasında Seçim Yapın

Adres bildirimlerini, soket aboneliklerini ve sınırlı yoklamayı zincir desteği, kurtarma, alıcı gereksinimleri ve faturalandırmaya göre karşılaştırın.

Bir HTTPS alıcısına teslimat için adres Webhook'larını, desteklenen canlı abonelikler için WebSocket'i ve iş akışının kendi imlecine ve kurtarma mantığına ihtiyaç duyduğu durumlarda sınırlı yoklamayı kullanın.

Geliştiriciler ve AI Agent'lar için zincir üstü olay dinleyicileri oluşturmak; uygulama mimarisini ağ yetenekleri, teslimat garantileri, alıcı kısıtlamaları ve operasyonel maliyetlerle eşleştirmeyi gerektirir.

Karar matrisi

Aşağıdaki tablo, desteklenen ağ yetenekleri, altyapı gereksinimleri, kurtarma stratejileri ve faturalandırma modelleri genelinde her üç entegrasyon mekanizmasını karşılaştırmaktadır:

BoyutAdres Webhook'larıWebSocket AbonelikleriSınırlı RPC Yoklaması
Birincil mekanizmaGenel bir uç noktaya HTTPS POST yoluyla iletilen push bildirimiKalıcı TLS bağlantısı (wss://) üzerinden akış (pull-stream) aboneliğiİstemci tarafından başlatılan HTTP JSON-RPC toplu veya zamanlanmış sorguları
Zincir kullanılabilirliğiGET /v1/push/chains içinde bildirilen desteklenen tüm ağlarRobinhood Chain üzerinde desteklenir (robinhood_mainnet ve robinhood_testnet); hizmet verilmeyen ağlar ws: false değerine sahiptir ve HTTP 404 döndürürGET /v1/chains içindeki anahtarsız genel RPC veya kimliği doğrulanmış JSON-RPC aracılığıyla desteklenen tüm ağlar
Alıcı gereksinimleriHerkese açık HTTPS URL'si, geçerli TLS sertifikası, zaman aşımı içinde 2xx yanıtı, ham gövde HMAC SHA-256 imza doğrulamasıGiden TCP/TLS istemci bağlantısı (wss://); ping/pong sinyallerini ve yeniden bağlanma geri çekilmesini (backoff) yönetirDurumsuz HTTP istemcisi veya zamanlanmış worker; yerel blok imlecini depolar
Teslimat ve sıralamaÜstel yeniden deneme geri çekilmesi ile en az bir kez (at-least-once) teslimat; alıcı olay id değerine göre veya abonelikler genelinde ref + type ile tekilleştirmelidirTek bir etkin sokette kesin olarak sıralanmış çerçeveler; bağlantı kopmaları sırasında bildirimler bırakılırOnaylanmış blok yükseklikleri için belirleyici çekme (pull) yanıtları; istemci yürütme hızını belirler
Zincir yeniden düzenlemeleri (reorg)chain.reorg için yayınlanan kontrol bildirimleri; alıcı kanonik yeniden oynatmaları uygulamadan önce değiştirilen olayları atarLog bildirimleri, yeniden düzenlenen loglar için "removed": true taşır; newHeads, üst blok karması (parent hash) kontrolü gerektirirİstemci, reorg'ları tespit etmek için yoklama döngüleri genelinde parentHash zincir sürekliliğini izler
Arıza kurtarmaSunucu saklama penceresi POST /v1/push/subscriptions/{id}/replay aracılığıyla yeniden oynatmaya izin verir; etkinleştirme bloğundan önceki boşluklar eth_getLogs ile geriye dönük doldurma gerektirirSunucu tarafında kuyruk yoktur; istemci yeniden bağlanır ve (blockHash, transactionHash, logIndex) ile tekilleştirilmiş olarak eth_getLogs ile kaçırılan aralıkları doldururDepolanan last_synced_block üzerinden sorgulamayı sürdürür; GET /v1/chains içindeki ağın max_logs_block_range değerine göre parçalara böler
Faturalandırma modeliUTC günü boyunca çevrimiçi durumdayken en yüksek adres sayısına dayalı olarak grup başına günlük adres ücreti, artı teslim edilen veri olayları için CU; bkz. Webhook faturalandırmasıEl sıkışma ve bağlantı sinyalleri faturalandırılmaz; eth_subscribe / eth_unsubscribe ve sokete aktarılan bildirim birimleri CU cinsinden faturalandırılırCompute Units cinsinden istek başına ölçülür: eth_blockNumber, eth_call, eth_getLogs; yöntem ağırlıkları ve 1 USD başına CU GET /v1/plans üzerinden alınır, aşağıda gösterilmiştir
En uygun kullanım alanıKullanıcı yatırma takibi, sıcak cüzdan adresi izleme, satıcı ödeme noktaları, eşzamansız olay webhook'larıCanlı newHeads ve filtrelenmiş logs, reaktif botlar, desteklenen ağlarda etkileşimli kullanıcı arayüzleriToplu mutabakat, cron işleri, ETL işlem hatları, WebSocket desteği olmayan zincirler (HyperEVM gibi)

Aktif Dönüşüm Parametreleri

1 USD = 10,000 faturalandırma birimi, 1 faturalandırma birimi = 1,000 CU (1 USD = 10,000,000 CU).

Formül: CU ağırlığı × 1,000,000 ÷ (10,000 × 1,000) USD.

YöntemÇağrı başına CU1M çağrı başına fiyat (USD)
eth_blockNumber1$0.10
eth_call15$1.50
eth_getLogs30$3.00
debug_traceTransaction100$10.00
data.block5$0.50

Ne zaman adres Webhook'ları seçilmeli

Arka uç sisteminiz gelen HTTPS isteklerini alabilen standart bir web hizmeti olarak çalıştığında Blockchain Webhook API'sini seçin:

  • Büyük adres listeleri: Cüzdan başına kalıcı soketler tutmadan binlerce müşteri adresi genelinde para yatırma veya çekme işlemlerini izleyin.
  • Sunucusuz (serverless) veya konteynerli alıcılar: Sunucusuz işlevler (AWS Lambda, Cloudflare Workers) gelen webhook'lar üzerine ayağa kalkar ve sürekli bağlantıları canlı tutmaları gerekmez.
  • Otomatik yeniden denemeler ve yeniden oynatma: Geçici alıcı kesintileri, otomatik yeniden deneme geri çekilmesi ile hafifletilir. Sunucu saklama penceresi içinde, kaçırılan teslimatlar yeniden oynatma uç noktası kullanılarak tekrar iletilebilir.
  • Etkinleştirme sınırı hususları: Eşleştirme yalnızca abonelik değişikliği uygulandıktan sonra başlar (applied_from_block). Bir adres eklenmeden önce veya bir abonelik offline durumundayken meydana gelen olaylar, geçmiş RPC logları aracılığıyla sorgulanmalıdır.

Üretim webhook alıcılarını kullanıma sunmadan önce imza doğrulama ve yeniden oynatma iş akışlarını gözden geçirin.

Ne zaman WebSocket abonelikleri seçilmeli

Düşük gecikme süresi gerektiğinde ve süreciniz uzun süre çalışan giden bir soketi koruyabildiğinde WebSocket Aboneliklerini seçin:

  • Canlı blok başlıkları: Her blok zincir tepesine eklendikçe newHeads akışını alın.
  • Sözleşme olay filtreleri: Bir adresle veya belirli bir topic0 ile eşleşen gerçek zamanlı sözleşme logs akışını alın.
  • Özel ortamlar: Gelen genel HTTPS bağlantı noktasını açığa çıkaramayan NAT veya güvenlik duvarları arkasındaki yerel betikler, CLI araçları veya arka uç hizmetleri için idealdir.
  • Ağ kullanılabilirliği kontrolü: WebSocket, Robinhood Chain üzerinde desteklenir (ağ kısa adı robinhood_mainnet, Chain ID 4663 ve robinhood_testnet). HyperEVM şu anda WebSocket desteğine sahip değildir (ws: false); hizmet verilmeyen bir zincire WebSocket bağlantısı kurma girişimi HTTP 404 (unknown_chain) döndürür.
  • Bağlantı kesilme disiplini: WebSocket bildirimleri bağlantı kesilmeleri boyunca sunucuda tutulmaz. Soket koptuğunda, istemciler rastgele üstel geri çekilme ile yeniden bağlanmalı ve kaçırılan blokları eth_getLogs ile geriye dönük doldurmalıdır.

Filtre sınırları, bağlantı üst sınırları (anahtar başına 20, hesap başına 50) ve viem bağlantı örnekleri için WebSocket Abonelikleri rehberini inceleyin.

Ne zaman sınırlı RPC yoklaması seçilmeli

Zamanlanmış işleri, veri işlem hatlarını çalıştırırken veya WebSocket'in bulunmadığı ağlarda işlem yaparken sınırlı JSON-RPC yoklamasını seçin:

  • WebSocket bulunmayan ağlar: HyperEVM (hyperevm_mainnet) şu anda JSON-RPC HTTP erişimi sağlar ancak WebSocket sağlamaz (ws: false). Desteklenen blok aralıkları dahilinde eth_blockNumber yoklamak ve eth_getLogs sorgulamak, HyperEVM olay işlemeyi destekler.
  • Kontrollü sorgu hızı: Yoklama, geliştiricilerin ve AI Agent'ların istek sıklığını yönetmelerine, anahtar başına hız sınırlarına karşı Compute Unit tüketimini idare etmelerine ve uzun süren görevler sırasında soket düşmelerini önlemelerine olanak tanır. Anahtar başına sınırlar — varsayılanlar 400 CU/s ve ani artış (burst) 1,600 CU.
  • Blok aralığı sınırları: Kimliği doğrulanmış eth_getLogs sorguları, ağın GET /v1/chains içindeki max_logs_block_range değeriyle sınırlandırılmıştır. Bu sınırın aşılması -32602 (logs_range_too_large) hata kodunu döndürür. Daha geniş aralıkları, hedef ağın max_logs_block_range değerini aşmayan ardışık parçalara bölün.
ZincirZincir slugmax_logs_block_range (blok)
Arbitrum Onearb_mainnet1,000
Basebase_mainnet1,000
BNB Smart Chainbsc_mainnet1,000
Ethereumeth_mainnet1,000
Ethereum Sepoliaeth_sepolia1,000
HyperEVMhyperevm_mainnet1,000
Polygonpolygon_mainnet1,000
Robinhood Chainrobinhood_mainnet1,000
Robinhood Chain Testnetrobinhood_testnet1,000

Parçalama algoritmaları için HyperEVM log geriye dönük doldurma rehberine ve eth_getLogs blok aralığı rehberine bakın.

Eksiksiz bir iş yükü kontrol listesi ve kendi kendine testler için Bir RPC sağlayıcısı nasıl seçilir ile başlayın.

Düşük hacimli yoklama için bir sağlayıcı seçerken, standart RPC faturalandırması ve kapsamı için sağlayıcıları karşılaştırın. Kullanım faturalandırmasını deneme ve abonelik maliyetleriyle karşılaştırın; bildirim ve geriye dönük doldurma maliyetleri, RPC okumalarından farklı ölçüm birimleri kullanır.

Uygulama rehberleri

Robinhood Chain üzerinde WebSocket

Robinhood Chain üzerinde canlı newHeads veya filtrelenmiş logs için kimlik doğrulama ve abonelik istekleri konusunda WebSocket Abonelikleri rehberini takip edin. Bağlantı kesildikten sonra geri çekilme ile yeniden bağlanın, yeniden abone olun ve eth_getLogs ile kaydedilmiş bir imleçten kaçırılan blokları geriye dönük doldurun; logları (blockHash, transactionHash, logIndex) ile tekilleştirin.

HyperEVM üzerinde sınırlı yoklama

HyperEVM (hyperevm_mainnet) için sınırlı yoklama ve kurtarma konusunda HyperEVM log geriye dönük doldurma rehberini takip edin. Kaydedilen imleçten max_logs_block_range içindeki parçalar halinde sorgulayın, başarılı işlemenin ardından olayları ve ilerlemeyi birlikte kalıcı kılın ve tamamlanmamış aralıkları yeniden deneyin. Yeniden düzenlemeleri (reorg) ele almak için zincir sürekliliğini kontrol edin ve örtüşen aralıkları tarayın.

Sonraki adımlar

Son güncelleme:

Bu sayfada