Kripto Piyasa Verileri İçin Proxy: Sorunun Kökeni
Kripto piyasa verileri için proxy kullanımı, nicel (quant) ekiplerin ve piyasa verisi servislerinin karşılaştığı en kritik altyapı kararlarından biridir. Merkezi borsalar (CEX) fiyat akışları, emir defteri anlık görüntüleri, fonlama oranları ve likidasyon verilerini sunarken katı hız sınırları ve coğrafi kısıtlamalar uygular. Zincir üstü (on-chain) veriler ise RPC düğümleri veya dizinleyiciler (indexer) üzerinden erişilir ve tamamen farklı bir yaklaşıma ihtiyaç duyar. Bu rehber, her iki veri dünyasını net biçimde ayırarak kripto piyasa verisi kazıma süreçlerinde proxy'lerin nasıl konumlandırılacağını açıklar.
Veri bütünlüğü — zaman damgalarının sıralı garantisi, gecikme (latency) kontrolü ve düzenleyici uyum — finansal karar verme için vazgeçilmezdir. SEC'in piyasa verisi lisanslama gereklilikleri ve MiFID II'nin işlem sonrası şeffaflık yükümlülükleri, veri toplama mimarinizi doğrudan etkiler. Yanlış proxy stratejisi yalnızca veri kaybına değil, düzenleyici risklere de yol açabilir.
Hedef Veri Türleri: CEX ve On-Chain Ayrımı
Kripto piyasa verisi toplama, temelde iki farklı dünyaya ayrılır. Her biri farklı erişim yöntemleri, hız sınırları ve proxy gereksinimleri taşır.
Merkezi Borsa (CEX) Verileri
- Fiyat akışları (price feeds): Binance, Coinbase, OKX ve Bybit gibi borsaların REST ve WebSocket uç noktalarından alınan gerçek zamanlı veya geçmiş fiyat verileri.
- Emir defteri anlık görüntüleri (orderbook snapshots): Derinlik verisi, spread analizi ve likidite profilleme için kritik.
- Fonlama oranları (funding rates): Vadeli işlemlerde uzun-kısa pozisyon dengesini gösteren, genellikle 8 saatlik periyotlarla yayınlanan veriler.
- Likidasyon verileri: Zorunlu kapatma olaylarının izlenmesi, volatilite sinyalleri ve risk modellemesi için kullanılır.
Zincir Üstü (On-Chain) Veriler
- RPC düğümleri: Alchemy, Infura, QuickNode gibi sağlayıcılar aracılığıyla doğrudan blokzincir sorgulama.
- Dizinleyiciler (indexers): The Graph, Dune Analytics gibi platformlar üzerinden yapılandırılmış on-chain veri sorgulama.
- Doğrulayıcı (validator) verileri: Staking报酬, doğrulama performansı ve ağ katılım metrikleri.
| Özellik | CEX Verileri | On-Chain Veriler |
|---|---|---|
| Erişim yöntemi | REST API + WebSocket | RPC çağrıları + GraphQL |
| Proxy gereksinimi | Yüksek (IP rotasyonu, geo-bypass) | Düşük–Orta (throughput artırımı) |
| Tipik hız sınırı | 1200 req/dk (Binance public) | 300 req/sn (QuickNode Growth) |
| Coğrafi kısıtlama | Yaygın (Binance US blokları) | Nadir |
| Veri gecikmesi | 10–200 ms (WebSocket/REST) | 100–500 ms (blok süresi bağımlı) |
| Düzenleyici risk | Yüksek (ToS, geo-yasak) | Düşük (kamu verisi) |
CEX Kazıma İçin Residential Proxy'ler Neden Önemli?
Merkezi borsalar, genel uç noktalarında IP tabanlı hız sınırları uygular. Binance, resmi belgelerine göre dakikada 6000 ağırlık birimi (weight unit) sınırı koyar; ancak bu sınır tek bir IP için geçerlidir. Birden fazla uç noktayı paralel sorgulayan bir quant ekibi bu sınırı hızla aşar ve 429 Too Many Requests yanıtı alır.
Daha kritik sorun, coğrafi kısıtlamalardır. Binance.com, ABD IP adreslerini engeller ve kullanıcıları Binance.US'a yönlendirir. Benzer şekilde, belirli yargı alanlarından gelen istekler 429 yanıtından hızla 451 Unavailable For Legal Reasons yanıtına yükselir. Bu durum, borsa API proxy'leri kullanılarak, hedef borsanın kısıtlama uygulamadığı bir coğrafi konumdan (örneğin ABD yerine Japonya veya Singapur) erişim sağlanmasıyla çözülebilir.
Residential proxy'ler, veri merkezi IP'lerinden farklı olarak, gerçek İSS (ISP) atamalarından gelen IP'leri kullanır. Borsaların bot tespit sistemleri, residential trafiği ayırt etmekte zorlanır; bu da engelleme riskini önemli ölçüde azaltır. Veri merkezi IP aralıkları kolayca tanınabilir ve toplu engellemelere tabi tutulabilir.
IP Rotasyonu Stratejileri
- İstek başına rotasyon (per-request): Her API çağrısı yeni bir IP ile yapılır. Geçmiş veri toplama ve emir defteri anlık görüntüleri için uygundur. ProxyHat'ta varsayılan davranıştır.
- Yapışkan oturum (sticky session): WebSocket bağlantıları için 10–30 dakika sabit IP. Bağlantı kopması, veri kaybına ve zaman damgası süreksizliğine yol açar; bu nedenle WebSocket için zorunludur.
On-Chain Veri Yaklaşımı: RPC Sağlayıcıları Yeterli mi?
Zincir üstü veri erişimi, CEX kazıma ile temel olarak farklıdır. Ethereum ağındaki bir blok yaklaşık 12 saniyede bir üretilir; bu nedenle veri tazeleği RPC düğümünün senkronizasyon durumuna bağlıdır. Alchemy veya Infura gibi sağlayıcılar zaten %99.9 erişilebilirlik ve düşük gecikme sunar.
Proxy'ler on-chain veri için genellikle gerekli değildir. Ancak iki senaryoda faydalı olabilir:
- Throughput artırımı: Tek bir RPC sağlayıcısının hız sınırına (örneğin QuickNode Growth planında saniyede 300 istek) ulaştığınızda, farklı IP'lerden gelen istekler ayrı hız kotalarıyla değerlendirilebilir.
- Coğrafi gecikme optimizasyonu: Avrupa'daki bir RPC düğümünü Asya'dan sorgulamak 200 ms üzerinde gecikme ekleyebilir. ProxyHat aracılığıyla, RPC sağlayıcısına yakın bir coğrafi konumdan çıkış almak gecikmeyi 50 ms altına düşürebilir.
Ethereum geliştirici belgeleri, RPC düğümü seçiminde gecikme ve güvenilirlik kriterlerini detaylandırır; ancak proxy kullanımını önermez çünkü zincir üstü veri kamu kaynağıdır ve coğrafi kısıtlamaya tabi değildir.
Mimari: WebSocket Öncelikli, REST Yedekli
Gerçek zamanlı piyasa verisi için WebSocket, birincil taşıyıcı protokol olmalıdır. REST API, yalnızca geçmiş veri çekme, başlangıç durumu senkronizasyonu veya WebSocket kesintisi durumunda yedek olarak kullanılmalıdır. Bu mimari, veri bütünlüğünü ve zaman damgası sıralılığını garanti altına alır.
Python ile Binance WebSocket + REST Yedek
Aşağıdaki örnek, ProxyHat residential proxy'lerini kullanarak Binance emir defteri verisini WebSocket ile izler ve bağlantı kopması durumunda REST ile yedekleme yapar:
import asyncio
import websockets
import requests
import json
PROXY_URL = "http://user-country-JP:pass@gate.proxyhat.com:8080"
REST_PROXY = {"http": PROXY_URL, "https": PROXY_URL}
async def stream_orderbook(symbol="btcusdt", depth=20):
ws_url = f"wss://stream.binance.com:9443/ws/{symbol}@depth{depth}@100ms"
# SOCKS5 proxy ile WebSocket yapışkan oturum
from websockets.proxy import proxy_connect
socks5 = "socks5://user-country-JP-session-ob1-30:pass@gate.proxyhat.com:1080"
async with proxy_connect(ws_url, proxy_url=socks5) as ws:
while True:
data = json.loads(await ws.recv())
yield data
def fetch_orderbook_rest(symbol="BTCUSDT", limit=20):
"""WebSocket kesintisinde REST yedek"""
url = f"https://api.binance.com/api/v3/depth?symbol={symbol}&limit={limit}"
resp = requests.get(url, proxies=REST_PROXY, timeout=10)
return resp.json()cURL ile Fonlama Oranı Sorgulama
# Binance fonlama oranı — Japonya çıkışlı residential proxy
curl -x http://user-country-JP:pass@gate.proxyhat.com:8080 \
"https://fapi.binance.com/fapi/v1/fundingRate?symbol=BTCUSDT&limit=100"Node.js ile Çoklu Borsa Emir Defteri Toplama
const axios = require('axios');
const { HttpsProxyAgent } = require('https-proxy-agent');
const proxyAgent = new HttpsProxyAgent(
'http://user-country-SG:pass@gate.proxyhat.com:8080'
);
async function fetchOrderbook(exchange, symbol) {
const endpoints = {
binance: `https://api.binance.com/api/v3/depth?symbol=${symbol}&limit=20`,
okx: `https://www.okx.com/api/v5/market/books?instId=${symbol}&sz=20`,
bybit: `https://api.bybit.com/v5/market/orderbook?category=spot&symbol=${symbol}&limit=20`,
};
const resp = await axios.get(endpoints[exchange], {
httpsAgent: proxyAgent,
timeout: 5000,
});
return { exchange, data: resp.data, ts: Date.now() };
}
// Paralel sorgulama — arbitraj sinyali için
Promise.all([
fetchOrderbook('binance', 'BTCUSDT'),
fetchOrderbook('okx', 'BTC-USDT'),
fetchOrderbook('bybit', 'BTCUSDT'),
]).then(results => console.log(JSON.stringify(results, null, 2)));On-Chain RPC Sorgulama (Proxy Opsiyonel)
import requests
# Proxy olmadan doğrudan RPC çağrısı (standart yaklaşım)
rpc_url = "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY"
payload = {
"jsonrpc": "2.0",
"method": "eth_getBlockByNumber",
"params": ["latest", False],
"id": 1
}
resp = requests.post(rpc_url, json=payload, timeout=10)
block = resp.json()
# Throughput artırımı için proxy ile (isteğe bağlı)
proxy_url = "http://user-country-DE:pass@gate.proxyhat.com:8080"
resp_proxied = requests.post(
rpc_url, json=payload,
proxies={"http": proxy_url, "https": proxy_url},
timeout=10
)Gecikme (Latency) Değerlendirmeleri
Nitel (quant) stratejilerinde her milisaniye önemlidir. Arbitraj fırsatları 10–50 ms penceresinde kapanır; bu nedenle proxy seçimi doğrudan P&L'yi etkiler. Yanlış coğrafi konumdan çıkış, 150–300 ms ek gecikme anlamına gelebilir ve bu, arbitraj stratejilerini tamamen işlevsiz kılar.
Borsa–Coğrafi Konum Eşleştirmesi
| Borsa | Sunucu Bölgesi | Önerilen Proxy Lokasyonu | Beklenen Gecikme |
|---|---|---|---|
| Binance | Singapur / Tokyo | Japonya, Singapur | 5–20 ms |
| Coinbase | ABD (AWS us-east-1) | ABD Doğu, Virginia | 5–15 ms |
| OKX | Hong Kong / Singapur | Hong Kong, Singapur | 5–20 ms |
| Bybit | Singapur | Singapur, Japonya | 5–20 ms |
ProxyHat, 50'den fazla ülkede residential çıkış noktaları sunar. Borsa sunucusuna yakın bir coğrafi konumdan çıkış yapmak, ağ gecikmesini minimize eder. Örneğin, Binance proxy stratejisi için Japonya çıkışlı bir residential IP, ABD çıkışlı bir veri merkezi IP'sine göre 150 ms daha düşük gecikme sağlayabilir.
WebSocket bağlantılarında gecikme özellikle kritiktir. 100 ms gecikme, saniyede 10 güncelleme alan bir emir defteri akışında 1 tam güncelleme döngüsü kaybı anlamına gelir. Yapışkan oturum ile sabit bir residential IP kullanmak, bağlantı kararlılığını artırır ve yeniden bağlanma maliyetlerini ortadan kaldırır:
# Yapışkan oturum — 30 dakika sabit IP
PROXY_URL = "http://user-country-JP-session-arb1-30:pass@gate.proxyhat.com:8080"İzleme, Uyarı ve Yeniden Bağlanma
Üretim ortamında veri akışı kesintileri kaçınılmazdır. Sağlam bir izleme sistemi kurmak, veri bütünlüğünü korumak için zorunludur.
- Bağlantı sağlığı kontrolü: WebSocket ping/pong mekanizmasını kullanın; 5 saniyeden fazla yanıt alınamazsa bağlantıyı yeniden kurun.
- Zaman damgası süreksizlik algılama: Ardışık veri noktaları arasında beklenen aralıktan büyük bir boşluk varsa, REST ile boşluğu doldurun.
- 429/451 izleme: HTTP yanıt kodlarını sürekli izleyin. 429 oranı %1'i aşarsa rotasyon hızını artırın; 451 alırsanız coğrafi konumu derhal değiştirin.
- Veri sıralı garanti: Binance WebSocket akışlarında
lastUpdateIdile sıralılığı doğrulayın. Boşluk varsa REST ile tamamlama yapın.
Düzenleyici ve Hukuki Hususlar
Kripto piyasa verisi toplama, teknik zorlukların ötesinde düzenleyici riskler taşır. Avrupa'da MiFID II, işlem sonrası veri şeffaflığını zorunlu kılar ve piyasa verisi servislerinin lisanslı veri sağlayıcılardan temin yükümlülüğü getirir. ABD'de SEC, borsa verilerinin ticari kullanımında piyasa verisi lisansı gereksinimlerini vurgular.
Borsa Hizmet Şartları (ToS)
- Binance: API erişimi kişisel kullanım için serbest, ancak ticari yeniden dağıtım ToS kapsamında yasaktır.
- Coinbase: Veri yeniden satış hakkı açıkça saklıdır; ticari kullanım için ayrı lisans gerekir.
- OKX: API verilerinin üçüncü tarafa ticari dağıtımı yasaktır.
Coğrafi Kısıtlamalar ve Yerel Yasa
Binance.com'un ABD IP'lerini engellemesi, ABD yasa uyumluluğu içindir. ABD'den residential proxy ile Binance.com'a erişim, teknik olarak mümkün olsa da ABD menşeli bir kurum için yerel yasa ihlali oluşturabilir. Bu rehber yasa danışmanlığı sunmaz; her kurum kendi hukuki değerlendirmesini yapmalıdır.
ABD yurt dışından erişimde ise durum farklıdır. Japonya veya Singapur'dan Binance.com API'sine erişmek, o yargı alanlarında yasal olabilir; ancak bu, ABD vatandaşlığı veya ABD menşeli kurumlar için geçerli değildir. Geo-bypass uygulaması, yalnızca erişilen yargı alanında yasal olduğunda kullanılmalıdır.
ProxyHat ile Kripto Piyasa Verisi Kazıma Kurulumu
ProxyHat, residential, mobil ve veri merkezi proxy'leri bir arada sunar. Kripto piyasa verisi kazıma için residential proxy'ler önerilir; ancak yüksek frekanslı stratejilerde veri merkezi proxy'ler daha düşük gecikme sunabilir. İhtiyacınıza göre seçim yapın.
Adım Adım Kurulum
- Hesap oluşturun: ProxyHat fiyatlandırma sayfasından uygun planı seçin.
- Kimlik bilgilerinizi alın: Dashboard'dan kullanıcı adı ve şifrenizi edinin.
- Coğrafi hedefleme: Kullanıcı adında ülke ve şehir parametrelerini belirtin:
user-country-JP-city-tokyo - Oturum yapılandırması: Yapışkan oturum için:
user-country-JP-session-arb1-30 - Bağlantı: HTTP için
gate.proxyhat.com:8080, SOCKS5 içingate.proxyhat.com:1080
Web kazıma örneklerimiz için web kazıma kullan senaryosu sayfamıza ve SERP izleme için SERP izleme sayfamıza göz atın. Ayrıntılı teknik belgeler için ProxyHat belgelerini inceleyin.
Sık Yapılan Hatalar ve Uç Durumlar
- Veri merkezi IP'leri ile CEX kazıma: Borsalar veri merkezi IP aralıklarını tespit edebilir ve hızla engeller. Residential proxy kullanın.
- WebSocket + istek başına rotasyon: Her istekte IP değiştirmek, WebSocket bağlantısını koparır. Yapışkan oturum kullanın.
- Zaman damgası hizalama eksikliği: Farklı borsalardan gelen verilerde sunucu saati sapmaları 10–50 ms olabilir.
recvWindowparametresi veya istemci tarafında NTP senkronizasyonu uygulayın. - 429→451 yükselmesini görmezden gelmek: 429 yanıtından sonra istek göndermeye devam etmek, IP'nin kalıcı engellenmesine yol açar. Üstel geri çekilme (exponential backoff) uygulayın.
- Tek borsa bağımlılığı: Bir borsanın API kesintisi tüm veri akışınızı durdurabilir. Çoklu borsa mimarisi kurun.
- On-chain veri için gereksiz proxy kullanımı: RPC sağlayıcıları zaten optimize edilmiş erişim sunar. Proxy eklemek, gecikmeyi artırabilir ve karmaşıklığa yol açabilir.
Temel Çıkarımlar
Kripto piyasa verisi kazıma mimarinizi tasarlarken şu ilkeleri benimseyin:
- CEX ve on-chain'i ayırın: CEX verileri proxy gerektirir; on-chain veriler genellikle RPC sağlayıcılarıyla doğrudan erişilebilir.
- WebSocket öncelikli olun: Gerçek zamanlı veri için WebSocket + yapışkan oturum; geçmiş veri için REST + istek başına rotasyon.
- Coğrafi gecikmeyi minimize edin: Borsa sunucusuna en yakın residential çıkış noktasını seçin; 5–20 ms gecikme hedefleyin.
- Düzenleyici uyumu ihmal etmeyin: ToS ve yerel yasa, proxy kullanımınızın meşruiyet sınırlarını belirler.
- Veri bütünlüğünü garanti altına alın: Zaman damgası sıralılığı, bağlantı kesintisi algılama ve yedek mekanizmaları kurun.
- Residential proxy tercih edin: CEX kazıma için veri merkezi IP'leri tespit edilir ve engellenir; residential IP'ler daha dayanıklıdır.






