Два мира криптоданных: on-chain и CEX
Криптоаналитика начинается с фундаментального разделения: on-chain-данные живут в блокчейне и доступны через RPC-провайдеров, а CEX-данные — котировки, стаканы, ставки финансирования, ликвидации — отдаются биржами через REST и WebSocket API. Прокси-инфраструктура для этих двух миров устроена принципиально по-разному.
Для on-chain достаточно надёжного RPC-провайдера (Alchemy, Infura, QuickNode). Прокси нужны лишь для повышения пропускной способности или обхода региональных ограничений. А вот для crypto market data scraping с централизованных бирж residential- и mobile-прокси становятся не вспомогательным инструментом, а критическим компонентом пайплайна.
Почему — разберём по порядку.
Целевые данные: что именно мы собираем
CEX-данные (требуют прокси)
Централизованные биржи — Binance, Coinbase, OKX, Bybit, Kraken — предоставляют публичные API, но с жёсткими лимитами и гео-ограничениями. Основные типы данных:
- Price feeds — тикеры и свечные данные (OHLCV). Основа для бэктестинга и сигнальных моделей.
- Orderbook snapshots — глубина стакана по 5–20 уровням. Критичны для оценки ликвидности и slippage-моделирования.
- Funding rates — ставки бессрочного финансирования на фьючерсах. Индикатор настроения рынка и источник carry-стратегий.
- Liquidations — данные о принудительных закрытиях позиций. Используются для анализа каскадных ликвидаций и стресс-сценариев.
- Trade history — потоки сделок в реальном времени. Основа для микроструктурного анализа.
On-chain данные (прокси вторичны)
Блокчейн-данные принципиально публичны и доступны через RPC-узлы или специализированные индексеры:
- RPC-провайдеры — Alchemy, Infura, QuickNode, Ankr. Дают прямой доступ к состоянию блокчейна через
eth_call,eth_getLogs,eth_blockNumber. - Индексеры — The Graph, Dune Analytics, Flipside Crypto. Предагрегируют on-chain события в SQL-доступные таблицы.
- Собственные ноды — для максимального контроля и минимальной задержки. Требуют инфраструктурных инвестиций.
Для on-chain пайплайнов прокси обычно не нужны: RPC-провайдеры авторизуют по API-ключу, а не по IP. Исключение — когда нужно повысить параллелизм или обойти региональные ограничения провайдера.
Почему residential-прокси критичны для CEX-скрейпинга
Биржи защищают свои публичные API несколькими механизмами, каждый из которых по-своему блокирует массовый сбор данных:
IP-based rate limits
Большинство бирж ограничивают запросы по IP-адресу. Binance — 1200 запросов/мин на весовой основе, Coinbase — 10 000 запросов/час, OKX — 20 запросов/2 секунды на публичных эндпоинтах. При масштабном crypto market data scraping одного IP недостаточно даже для мониторинга нескольких пар.
Гео-ограничения
Binance блокирует IP из США (HTTP 451). OKX ограничивает доступ из ряда юрисдикций. Bybit частично блокирует UK-IP для деривативов. Это не просто неудобство — при скрейпинге с datacenter-IP вы получаете не 429, а сразу 451, и IP попадает в чёрный список.
Эскалация 429 → 451
Классический сценарий: квант-команда начинает скрейпинг с датацентровых IP, получает серию 429 (rate limited), продолжает увеличивать нагрузку, и биржа эскалирует до 451 (unavailable for legal reasons). После этого IP-блок сохраняется неделями.
Residential-прокси решают обе проблемы: каждый запрос приходит с нового IP, а residential-адреса не попадают в датацентровые банлисты. Mobile-прокси ещё надёжнее — они имитируют реальных пользователей.
Архитектура: WebSocket-first + REST с ротацией прокси
Правильная архитектура сбора CEX-данных строится на двух принципах:
1. WebSocket — основной канал реального времени
Биржи предоставляют публичные WebSocket-стримы для сделок, стаканов и тикеров. WebSocket-соединение держится открытым, данные приходят пушем — это минимальная нагрузка на API и минимальная задержка.
- Binance WS:
wss://stream.binance.com:9443/ws/btcusdt@trade - OKX WS:
wss://ws.okx.com:8443/ws/v5/public - Bybit WS:
wss://stream.bybit.com/v5/public/spot
Для WebSocket residential-прокси нужны в первую очередь для установки соединения — после подключения IP-адрес фиксируется. Sticky-сессии на 10–30 минут обеспечивают стабильность.
2. REST — fallback и исторические данные
REST-эндпоинты нужны для исторических свечей, снимков стакана по запросу, ставок финансирования. Здесь IP-ротация критична: каждый запрос может идти с нового IP через rotating-прокси.
| Компонент | Протокол | Ротация IP | Тип прокси |
|---|---|---|---|
| Live trades | WebSocket | Sticky (10–30 мин) | Residential / Mobile |
| Orderbook stream | WebSocket | Sticky (10–30 мин) | Residential |
| Historical klines | REST | Per-request | Residential rotating |
| Funding rates | REST | Per-request | Residential rotating |
| Liquidation data | REST | Per-request | Residential rotating |
| On-chain (RPC) | HTTP/WS | Не требуется | Datacenter (опционально) |
Примеры реализации
Python: Binance REST с прокси-ротацией
Скрейпинг исторических свечей с ротацией IP через Binance proxy:
import requests
import time
from itertools import cycle
PROXIES = cycle([
"http://user-country-US:pass@gate.proxyhat.com:8080",
"http://user-country-GB:pass@gate.proxyhat.com:8080",
"http://user-country-SG:pass@gate.proxyhat.com:8080",
])
def fetch_klines(symbol, interval, start_ts, end_ts, limit=1000):
url = "https://api.binance.com/api/v3/klines"
all_data = []
current = start_ts
while current < end_ts:
proxy = next(PROXIES)
params = {
"symbol": symbol,
"interval": interval,
"startTime": current,
"endTime": end_ts,
"limit": limit,
}
resp = requests.get(
url, params=params,
proxies={"http": proxy, "https": proxy},
timeout=10,
)
if resp.status_code == 429:
time.sleep(60) # backoff
continue
if resp.status_code == 451:
raise RuntimeError("Geo-blocked — switch proxy country")
data = resp.json()
if not data:
break
all_data.extend(data)
current = data[-1][6] + 1 # close time + 1ms
time.sleep(0.1) # polite pacing
return all_data
# Получить 1-минутные свечи BTC/USDT за январь 2025
result = fetch_klines("BTCUSDT", "1m", 1704067200000, 1706745599000)
Python: WebSocket Binance через SOCKS5-прокси
Для реалтайм-стримов используем sticky-сессию:
import asyncio
import websockets
from websockets.proxy import connect
SOCKS5_PROXY = "socks5://user-country-US-session-fix1:pass@gate.proxyhat.com:1080"
async def stream_trades(symbol="btcusdt"):
uri = f"wss://stream.binance.com:9443/ws/{symbol}@trade"
proxy = connect(SOCKS5_PROXY)
async with proxy as tunnel:
async with websockets.connect(uri, proxy=tunnel) as ws:
async for msg in ws:
print(msg) # обработка trade-данных
asyncio.run(stream_trades())
Node.js: OKX REST с ротацией для funding rates
const axios = require('axios');
const PROXY_HOST = 'gate.proxyhat.com';
const PROXY_PORT = 8080;
async function fetchFundingRates(instId = 'BTC-USDT-SWAP') {
const url = 'https://www.okx.com/api/v5/public/funding-rate';
const username = `user-country-SG`;
const password = 'pass';
const resp = await axios.get(url, {
params: { instId },
proxy: {
host: PROXY_HOST,
port: PROXY_PORT,
auth: { username, password },
},
timeout: 10000,
});
return resp.data.data;
}
fetchFundingRates().then(console.log);
curl: быстрый тест с ProxyHat
# Проверка доступности Binance API через US residential-прокси
curl -x http://user-country-US:pass@gate.proxyhat.com:8080 \
"https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT"
# OKX funding rate через Singapore-прокси
curl -x http://user-country-SG:pass@gate.proxyhat.com:8080 \
"https://www.okx.com/api/v5/public/funding-rate?instId=BTC-USDT-SWAP"
Латентность: география имеет значение
Для квантовых стратегий задержка в 50–100 мс может быть разницей между прибылью и убытком. География прокси-сервера напрямую влияет на латентность:
| Биржа | Серверы | Рекомендуемый прокси-регион | Ожидаемая латентность |
|---|---|---|---|
| Binance | AWS Tokyo / Singapore | JP, SG, HK | 5–30 мс |
| Coinbase | AWS US-East | US | 5–20 мс |
| OKX | HK / Singapore | SG, HK, JP | 10–40 мс |
| Bybit | Singapore | SG, JP, HK | 10–35 мс |
| Kraken | EU (Amsterdam) | DE, NL, IE | 5–25 мс |
ProxyHat позволяет геотаргетировать прокси на уровне страны и города:
user-country-US— любой US IP для Coinbaseuser-country-SG— Singapore IP для Binance и OKXuser-country-DE-city-frankfurt— Frankfurt IP для Kraken и европейских бирж
Для высокочастотных стратегий комбинируйте WebSocket (минимальная латентность) с прокси в том же дата-центре, где размещены серверы биржи. REST-запросы для исторических данных менее чувствительны к задержкам — здесь можно использовать ротацию IP с приоритетом над латентностью.
On-chain: когда прокси всё-таки нужны
Для большинства on-chain-задач RPC-провайдер достаточен. Но есть сценарии, где прокси добавляют ценность:
Пропускная способность
Alchemy и Infura ограничивают бесплатные планы до 300 CU/сек. При параллельном скрейпинге нескольких блоков можно упереться в лимит. Datacenter-прокси от ProxyHat с ротацией IP позволяют распределить нагрузку по нескольким аккаунтам RPC-провайдера.
Географическая маршрутизация
Некоторые RPC-провайдеры ограничивают доступ из определённых регионов. Datacenter-прокси в нужной юрисдикции решают эту проблему.
Архивирование и бэктестинг
Массовый запрос исторических данных (например, все события Uniswap V3 за год) требует сотен тысяч eth_getLogs-вызовов. Здесь datacenter-прокси с ротацией помогают избежать rate limits.
# On-chain запрос через Infura с datacenter-прокси
curl -x http://user-country-US:pass@gate.proxyhat.com:8080 \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
"https://mainnet.infura.io/v3/YOUR_PROJECT_ID"
Целостность данных: временные метки и последовательность
Для финансового анализа целостность данных не менее важна, чем скорость получения. Ключевые принципы:
Гарантия последовательности
При ротации IP между запросами важно гарантировать, что данные приходят в хронологическом порядке. WebSocket-стримы обеспечивают это по определению. Для REST-запросов — всегда используйте параметр startTime и проверяйте endTime каждого батча.
Таймстампы
Биржи возвращают таймстампы в миллисекундах (Binance, OKX) или микросекундах (Bybit). Нормализуйте все таймстампы к единому формату на уровне ETL-пайплайна. Всегда сохраняйте exchange timestamp (время биржи) и local timestamp (время получения) — разница между ними покажет реальную латентность.
Дедупликация
При WebSocket-переподключениях возможны дубли. Храните tradeId или eventHash и дедуплицируйте на уровне ingestion-слоя.
Регуляторные соображения
Сбор криптоданных существует в серой регуляторной зоне. Вот ключевые риски и их митигация:
Условия использования бирж (ToS)
Большинство бирж прямо запрещают скрейпинг в ToS. Binance API Terms запрещают «excessive requests» и «unauthorized data extraction». Практика: публичные API предназначены для использования, но массовый скрейпинг может считаться нарушением ToS. Консультируйтесь с юристом, если строите коммерческий продукт на чужих данных.
Географические ограничения и местное законодательство
Binance блокирует US-IP не просто так — это следствие регуляторного давления SEC и CFTC. Обход гео-блокировок для доступа к данным из США может нарушать local law, а не только ToS биржи. Аналогично — MiFID II в ЕС накладывает требования на рыночные данные. Если вы перепродаёте данные как «market data service», вам нужна лицензия.
Лицензирование рыночных данных
SEC и MiFID II различают «public data» и «market data services». Сбор для внутреннего использования — одна ситуация, перепродажа как SaaS — совсем другая. Для DeFi-аналитики и внутренних моделей риск ниже, для коммерческих data-feeds — выше.
Практическая рекомендация: используйте residential-прокси для обеспечения стабильности и полноты данных, но не для обхода юридических ограничений. Если биржа заблокировала юрисдикцию — убедитесь, что ваш доступ не нарушает местное законодательство.
GDPR и CCPA
CEX-данные не содержат персональную информацию, поэтому GDPR/CCPA минимально применимы. Однако если вы собираете данные, связанные с идентифицируемыми кошельками (on-chain + CEX-корреляция), могут возникнуть обязательства по конфиденциальности.
Сравнение типов прокси для криптоданных
| Характеристика | Residential | Mobile | Datacenter |
|---|---|---|---|
| Обход rate limits | Отлично | Отлично | Средне |
| Обход гео-блоков | Отлично | Отлично | Плохо |
| Латентность | Средняя (50–200 мс) | Высокая (100–500 мс) | Низкая (5–30 мс) |
| Стабильность WS | Хорошая | Средняя | Отличная |
| Цена | Средняя | Высокая | Низкая |
| Лучший сценарий | REST-скрейпинг CEX | Упорные гео-блоки | On-chain RPC, HFT |
Оптимальная стратегия: residential-прокси для REST-скрейпинга (ротация IP, обход лимитов), datacenter-прокси для WebSocket (низкая латентность, стабильное соединение) и mobile-прокси для упорных гео-блоков (Binance US, Bybit UK).
Мониторинг и метрики
Для продакшн-пайплайна отслеживайте:
- Success rate — доля успешных запросов (2xx) от общего числа. Цель: >99% для WS, >97% для REST.
- Latency p50/p99 — медиана и 99-й перцентиль задержки. Аномалии p99 часто указывают на прокси-проблемы.
- Rate limit hits — количество 429-ответов. Если >1% — увеличьте пул прокси или снизьте частоту.
- Geo-block hits — количество 451-ответов. Если >0 — проверьте геотаргетинг прокси.
- Data gaps — пропуски в таймсериях. Критичны для количественных моделей.
Ключевые выводы
- Разделяйте on-chain и CEX: для on-chain используйте RPC-провайдеров, прокси — опционально; для CEX прокси — необходимость.
- WebSocket-first для реалтайм-данных, REST с ротацией для исторических. Не пытайтесь поллить REST для live-данных.
- Residential-прокси решают 429 и 451: ротация IP снимает rate limits, residential-адреса обходят датацентровые баны.
- География латентности: US для Coinbase, SEA для Binance/OKX, EU для Kraken. Выбирайте прокси рядом с серверами биржи.
- Целостность данных важнее скорости: сохраняйте exchange и local timestamps, дедуплицируйте, проверяйте последовательность.
- Регуляторные риски реальны: не нарушайте местное законодательство при обходе гео-ограничений. Консультируйтесь с юристом для коммерческих data-продуктов.
- Комбинируйте типы прокси: residential для REST-скрейпинга, datacenter для WebSocket, mobile для упорных гео-блоков.
Готовы построить надёжный пайплайн криптоданных? Начните с планов ProxyHat — residential, mobile и datacenter прокси с геотаргетингом по странам и городам. Для масштабных проектов по exchange API proxies и crypto market data scraping доступна гибкая тарификация по трафику.
Больше о сценариях использования — в наших материалах: веб-скрейпинг и SERP-мониторинг.






