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:
| Boyut | Adres Webhook'ları | WebSocket Abonelikleri | Sınırlı RPC Yoklaması |
|---|---|---|---|
| Birincil mekanizma | Genel bir uç noktaya HTTPS POST yoluyla iletilen push bildirimi | Kalı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ği | GET /v1/push/chains içinde bildirilen desteklenen tüm ağlar | Robinhood Chain üzerinde desteklenir (robinhood_mainnet ve robinhood_testnet); hizmet verilmeyen ağlar ws: false değerine sahiptir ve HTTP 404 döndürür | GET /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ı gereksinimleri | Herkese 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önetir | Durumsuz 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ştirmelidir | Tek bir etkin sokette kesin olarak sıralanmış çerçeveler; bağlantı kopmaları sırasında bildirimler bırakılır | Onaylanmış 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ı atar | Log 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 kurtarma | Sunucu 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 gerektirir | Sunucu 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ı doldurur | Depolanan 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 modeli | UTC 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ır | Compute 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üzleri | Toplu 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 CU | 1M çağrı başına fiyat (USD) |
|---|---|---|
eth_blockNumber | 1 | $0.10 |
eth_call | 15 | $1.50 |
eth_getLogs | 30 | $3.00 |
debug_traceTransaction | 100 | $10.00 |
data.block | 5 | $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 abonelikofflinedurumundayken 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
newHeadsakışını alın. - Sözleşme olay filtreleri: Bir adresle veya belirli bir
topic0ile eşleşen gerçek zamanlı sözleşmelogsakışı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 verobinhood_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_getLogsile 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ı dahilindeeth_blockNumberyoklamak veeth_getLogssorgulamak, 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_getLogssorguları, ağın GET /v1/chains içindekimax_logs_block_rangedeğ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ğınmax_logs_block_rangedeğerini aşmayan ardışık parçalara bölün.
| Zincir | Zincir slug | max_logs_block_range (blok) |
|---|---|---|
| Arbitrum One | arb_mainnet | 1,000 |
| Base | base_mainnet | 1,000 |
| BNB Smart Chain | bsc_mainnet | 1,000 |
| Ethereum | eth_mainnet | 1,000 |
| Ethereum Sepolia | eth_sepolia | 1,000 |
| HyperEVM | hyperevm_mainnet | 1,000 |
| Polygon | polygon_mainnet | 1,000 |
| Robinhood Chain | robinhood_mainnet | 1,000 |
| Robinhood Chain Testnet | robinhood_testnet | 1,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
- BlockVectra'nın indekslediği tüm veri kümelerini görmek için veri kümeleri dizinine göz atın.
- Hesabınızın neleri içerdiğini kontrol etmek için ücretsiz planı ve fiyatlandırmayı inceleyin.
- Bir API key oluşturmak için konsolda oturum açın.
Son güncelleme:
Webhook push
HTTP üzerinden adres abonelikleri oluşturun, ham gövde imzalarını doğrulayın, olay kimliklerini tekilleştirin ve saklanan eşleşmeleri veya eksik blokları kurtarın.
WebSocket Abonelikleri
eth_subscribe newHeads ve logs için BlockVectra WebSocket uç noktalarına bağlanın. Bağlantı yöntemlerini, filtre kurallarını, yeniden bağlanma geri çekilmesini ve kurtarmayı öğrenin.