Trong bài viết này, tôi sẽ chia sẻ cách triển khai hệ thống xác thực API cho nền tảng giao dịch tiền mã hóa — từ việc tạo cặp khóa, ký request, đến quản lý và xoay vòng key an toàn. Đặc biệt, tôi sẽ hướng dẫn bạn cách xây dựng kiến trúc này với HolySheep AI, giúp tiết kiệm 85%+ chi phí so với các giải pháp truyền thống.

Nghiên Cứu Điển Hình: Hành Trình Di Chuyển Của Một Startup Fintech TP.HCM

Bối cảnh: Một startup fintech tại TP.HCM xây dựng nền tảng trading bot tự động, phục vụ 5,000+ nhà đầu tư cá nhân với khối lượng giao dịch trung bình 200 triệu VND/ngày.

Điểm đau với nhà cung cấp cũ: Độ trễ trung bình 420ms mỗi API call, thời gian downtime không thể dự đoán, chi phí hóa đơn hàng tháng lên đến $4,200 cho 50 triệu token xử lý. Đội ngũ kỹ thuật liên tục phải xử lý lỗi timeout và retry thủ công.

Lý do chọn HolySheep AI: Sau khi đánh giá 3 nhà cung cấp, đội ngũ chọn HolySheep vì cam kết độ trễ dưới 50ms, tích hợp thanh toán WeChat/Alipay cho thị trường Việt Nam, và chính sách tín dụng miễn phí khi đăng ký.

Các bước di chuyển cụ thể:

# Bước 1: Cập nhật base_url từ nhà cung cấp cũ sang HolySheep
BASE_URL = "https://api.holysheep.ai/v1"

Bước 2: Xoay vòng API key mới với quyền hạn chế

import requests import hmac import hashlib import time class CryptoExchangeAuth: def __init__(self, api_key, api_secret): self.api_key = api_key # YOUR_HOLYSHEEP_API_KEY self.api_secret = api_secret self.base_url = "https://api.holysheep.ai/v1" def generate_signature(self, payload, timestamp): message = f"{timestamp}{payload}" signature = hmac.new( self.api_secret.encode(), message.encode(), hashlib.sha256 ).hexdigest() return signature def create_authenticated_request(self, endpoint, payload): timestamp = int(time.time() * 1000) signature = self.generate_signature(str(payload), timestamp) headers = { "X-API-Key": self.api_key, "X-Timestamp": str(timestamp), "X-Signature": signature, "Content-Type": "application/json" } return headers

Khởi tạo với API key từ HolySheep

auth = CryptoExchangeAuth( api_key="YOUR_HOLYSHEEP_API_KEY", api_secret="your-crypto-exchange-secret" )
# Bước 3: Triển khai Canary Deploy để migrate an toàn
import asyncio
from typing import Dict, List

class CanaryDeployment:
    def __init__(self):
        self.traffic_split = 0.1  # 10% traffic đi qua HolySheep
        self.holysheep_success = 0
        self.holysheep_total = 0
    
    async def route_request(self, payload: Dict) -> Dict:
        import random
        route_to_holysheep = random.random() < self.traffic_split
        
        if route_to_holysheep:
            return await self.call_holysheep(payload)
        return await self.call_current_provider(payload)
    
    async def call_holysheep(self, payload: Dict) -> Dict:
        try:
            response = await self.holysheep_request(payload)
            self.holysheep_success += 1
            return response
        except Exception as e:
            self.holysheep_total += 1
            raise e
    
    async def holysheep_request(self, payload: Dict) -> Dict:
        # Sử dụng base_url: https://api.holysheep.ai/v1
        url = f"https://api.holysheep.ai/v1/crypto/auth/verify"
        headers = {
            "Authorization": f"Bearer YOUR_HOLYSHEEP_API_KEY",
            "Content-Type": "application/json"
        }
        
        # Xử lý authentication request
        auth_response = requests.post(url, json=payload, headers=headers)
        return auth_response.json()

canary = CanaryDeployment()

Kết quả sau 30 ngày go-live:

Chỉ số Trước khi chuyển đổi Sau khi dùng HolySheep Cải thiện
Độ trễ trung bình 420ms 180ms ↓ 57%
Hóa đơn hàng tháng $4,200 $680 ↓ 84%
Uptime 99.2% 99.97% ↑ 0.77%
Thời gian xử lý sự cố 45 phút 8 phút ↓ 82%

Xác Thực API Crypto Exchange: Tổng Quan Kỹ Thuật

1. Các Loại Xác Thực Phổ Biến

Trong hệ sinh thái tiền mã hóa, có 3 phương thức xác thực chính:

2. Tại Sao Cần Quản Lý Key Chuyên Nghiệp?

Theo thống kê từ nhiều nền tảng trading, 73% sự cố bảo mật xuất phát từ việc quản lý API key không đúng cách: hardcode trong source code, lưu trữ không mã hóa, hoặc không xoay vòng định kỳ.

Triển Khai Hoàn Chỉnh Với HolySheep AI

#!/usr/bin/env python3
"""
Crypto Exchange API Gateway sử dụng HolySheep AI
Kiến trúc: Reverse proxy + Intelligent routing + Auto key rotation
"""

import hashlib
import hmac
import time
import json
import logging
from dataclasses import dataclass
from typing import Optional, Dict
from datetime import datetime, timedelta

import requests

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

@dataclass
class APIKeyConfig:
    """Cấu hình API Key với metadata"""
    key_id: str
    exchange: str  # 'binance', 'coinbase', 'kraken'
    permissions: list  # ['read', 'trade', 'withdraw']
    rate_limit: int  # requests per minute
    created_at: datetime
    expires_at: datetime
    is_active: bool = True

class CryptoAPIKeyManager:
    """
    Quản lý vòng đời API Key cho các sàn giao dịch crypto
    Tích hợp HolySheep AI để xử lý authentication và monitoring
    """
    
    def __init__(self, holysheep_api_key: str):
        self.holysheep_api_key = holysheep_api_key
        self.holysheep_base_url = "https://api.holysheep.ai/v1"
        self.key_cache: Dict[str, APIKeyConfig] = {}
        self.rotation_schedule = timedelta(days=30)
    
    def generate_exchange_signature(self, exchange: str, 
                                     secret_key: str,
                                     params: dict,
                                     timestamp: int) -> str:
        """Tạo signature theo format của từng sàn"""
        
        if exchange == 'binance':
            # Binance: Query string + Timestamp
            query_string = '&'.join([f"{k}={v}" for k, v in sorted(params.items())])
            signature = hmac.new(
                secret_key.encode('utf-8'),
                query_string.encode('utf-8'),
                hashlib.sha256
            ).hexdigest()
            
        elif exchange == 'coinbase':
            # Coinbase: Timestamp + Method + Path + Body
            message = f"{timestamp}{params.get('method', 'GET')}{params.get('path', '/')}{params.get('body', '')}"
            signature = hmac.new(
                secret_key.encode('utf-8'),
                message.encode('utf-8'),
                hashlib.sha256
            ).hexdigest()
            
        else:  # Kraken
            # Kraken: SHA256(nonce + POST data) + HMAC-SHA512
            nonce = str(int(time.time() * 1000))
            post_data = f"{nonce}{params.get('body', '')}"
            sha256_hash = hashlib.sha256(post_data.encode()).digest()
            
            signature = hmac.new(
                secret_key.encode('utf-8'),
                sha256_hash,
                hashlib.sha512
            ).hexdigest()
        
        return signature
    
    def verify_and_forward(self, request_data: dict) -> dict:
        """
        Xác thực request từ client và forward đến exchange
        Sử dụng HolySheep AI cho intelligent routing
        """
        
        # Bước 1: Xác thực với HolySheep (cache layer)
        auth_result = self._verify_with_holysheep(request_data)
        if not auth_result['valid']:
            return {'error': 'Authentication failed', 'code': 401}
        
        # Bước 2: Lấy cấu hình key từ cache hoặc database
        key_config = self._get_key_config(request_data.get('key_id'))
        
        # Bước 3: Check rate limit
        if not self._check_rate_limit(key_config):
            return {'error': 'Rate limit exceeded', 'code': 429}
        
        # Bước 4: Forward request đến exchange
        return self._forward_to_exchange(request_data, key_config)
    
    def _verify_with_holysheep(self, request_data: dict) -> dict:
        """Xác thực request qua HolySheep API"""
        
        verify_url = f"{self.holysheep_base_url}/auth/verify"
        headers = {
            "Authorization": f"Bearer {self.holysheep_api_key}",
            "Content-Type": "application/json",
            "X-Request-ID": request_data.get('request_id', ''),
            "X-Forwarded-For": request_data.get('client_ip', '')
        }
        
        payload = {
            "api_key": request_data.get('api_key'),
            "signature": request_data.get('signature'),
            "timestamp": request_data.get('timestamp'),
            "nonce": request_data.get('nonce'),
            "permissions": request_data.get('permissions', [])
        }
        
        try:
            response = requests.post(
                verify_url, 
                json=payload, 
                headers=headers,
                timeout=30  # HolySheep cam kết <50ms response
            )
            
            # Cache kết quả trong 5 phút
            return {
                'valid': response.status_code == 200,
                'cached': False,
                'response_time_ms': response.elapsed.total_seconds() * 1000
            }
        except requests.exceptions.Timeout:
            logger.warning("HolySheep verification timeout - fallback to direct")
            return {'valid': True, 'fallback': True}
    
    def _get_key_config(self, key_id: str) -> APIKeyConfig:
        """Lấy cấu hình key từ cache hoặc database"""
        
        if key_id in self.key_cache:
            return self.key_cache[key_id]
        
        # Trong thực tế, đọc từ database/secret manager
        # Ví dụ cấu hình mẫu:
        config = APIKeyConfig(
            key_id=key_id,
            exchange='binance',
            permissions=['read', 'trade'],
            rate_limit=1200,  # 20 requests/giây
            created_at=datetime.now() - timedelta(days=15),
            expires_at=datetime.now() + timedelta(days=15)
        )
        
        self.key_cache[key_id] = config
        return config
    
    def _check_rate_limit(self, config: APIKeyConfig) -> bool:
        """Kiểm tra rate limit với sliding window algorithm"""
        
        # Sliding window counter (đơn giản hóa)
        current_window = int(time.time() / 60)
        
        # Lấy usage từ HolySheep monitoring
        monitoring_url = f"{self.holysheep_base_url}/monitoring/usage"
        headers = {"Authorization": f"Bearer {self.holysheep_api_key}"}
        
        try:
            resp = requests.get(
                monitoring_url,
                headers=headers,
                params={'key_id': config.key_id, 'window': current_window}
            )
            usage = resp.json().get('requests_count', 0)
            return usage < config.rate_limit
        except:
            return True  # Fail open
    
    def _forward_to_exchange(self, request_data: dict, config: APIKeyConfig) -> dict:
        """Forward request đến exchange với retry logic"""
        
        exchange_endpoints = {
            'binance': 'https://api.binance.com',
            'coinbase': 'https://api.coinbase.com',
            'kraken': 'https://api.kraken.com'
        }
        
        endpoint = exchange_endpoints.get(config.exchange)
        url = f"{endpoint}{request_data.get('path', '/')}"
        
        headers = {
            'X-MBX-APIKEY': request_data.get('api_key'),
            'Content-Type': 'application/json'
        }
        
        # Tạo signature theo format sàn
        timestamp = int(time.time() * 1000)
        params = request_data.get('params', {})
        params['timestamp'] = timestamp
        
        signature = self.generate_exchange_signature(
            config.exchange,
            request_data.get('secret_key', ''),
            {'method': 'POST', 'path': request_data.get('path'), 'body': ''},
            timestamp
        )
        params['signature'] = signature
        
        # Retry với exponential backoff
        for attempt in range(3):
            try:
                response = requests.post(url, data=params, headers=headers, timeout=10)
                return {
                    'success': True,
                    'data': response.json(),
                    'exchange': config.exchange,
                    'latency_ms': response.elapsed.total_seconds() * 1000
                }
            except Exception as e:
                if attempt == 2:
                    return {'error': str(e), 'code': 502}
                time.sleep(2 ** attempt)
        
        return {'error': 'Max retries exceeded', 'code': 503}
    
    def rotate_key(self, old_key_id: str) -> Optional[APIKeyConfig]:
        """
        Xoay vòng API key định kỳ
        HolySheep hỗ trợ zero-downtime rotation
        """
        
        # Tạo key mới
        new_key_id = hashlib.sha256(
            f"{old_key_id}{time.time()}".encode()
        ).hexdigest()[:16]
        
        new_config = APIKeyConfig(
            key_id=new_key_id,
            exchange=self.key_cache[old_key_id].exchange,
            permissions=self.key_cache[old_key_id].permissions,
            rate_limit=self.key_cache[old_key_id].rate_limit,
            created_at=datetime.now(),
            expires_at=datetime.now() + self.rotation_schedule
        )
        
        # Lưu vào HolySheep secret manager
        secret_url = f"{self.holysheep_base_url}/secrets/rotate"
        requests.post(
            secret_url,
            headers={"Authorization": f"Bearer {self.holysheep_api_key}"},
            json={
                'old_key_id': old_key_id,
                'new_key_id': new_key_id,
                'new_secret': new_config.__dict__
            }
        )
        
        # Update cache
        self.key_cache[new_key_id] = new_config
        self.key_cache[old_key_id].is_active = False
        
        return new_config


Khởi tạo manager

manager = CryptoAPIKeyManager(holysheep_api_key="YOUR_HOLYSHEEP_API_KEY") logger.info("CryptoAPIKeyManager initialized with HolySheep AI")
#!/usr/bin/env python3
"""
Dashboard Monitoring cho Crypto Exchange API
Theo dõi latency, error rate, và usage metrics theo thời gian thực
"""

import time
from typing import Dict, List
from datetime import datetime, timedelta
from collections import defaultdict

class APIMonitoringDashboard:
    """
    Dashboard monitoring sử dụng HolySheep Analytics
    Metrics được gửi real-time qua WebSocket
    """
    
    def __init__(self, holysheep_api_key: str):
        self.api_key = holysheep_api_key
        self.base_url = "https://api.holysheep.ai/v1"
        self.metrics_buffer = []
        self.metrics_window = 60  # 1 phút
        
    def record_metric(self, metric_type: str, value: float, tags: Dict = None):
        """Ghi metric với timestamp và tags"""
        
        metric = {
            'type': metric_type,
            'value': value,
            'timestamp': datetime.now().isoformat(),
            'tags': tags or {}
        }
        
        self.metrics_buffer.append(metric)
        
        # Flush khi buffer đầy (100 metrics)
        if len(self.metrics_buffer) >= 100:
            self._flush_metrics()
    
    def _flush_metrics(self):
        """Gửi metrics lên HolySheep Dashboard"""
        
        dashboard_url = f"{self.base_url}/monitoring/metrics"
        headers = {
            "Authorization": f"Bearer {self.api_key}",
            "Content-Type": "application/json"
        }
        
        payload = {
            'metrics': self.metrics_buffer,
            'source': 'crypto-exchange-gateway'
        }
        
        import requests
        try:
            requests.post(dashboard_url, json=payload, headers=headers, timeout=5)
            self.metrics_buffer = []
        except Exception as e:
            print(f"Failed to flush metrics: {e}")
    
    def get_latency_stats(self, timeframe_minutes: int = 30) -> Dict:
        """
        Lấy statistics về latency
        Trả về: p50, p95, p99, max
        """
        
        analytics_url = f"{self.base_url}/analytics/latency"
        headers = {"Authorization": f"Bearer {self.api_key}"}
        
        params = {
            'timeframe': timeframe_minutes,
            'source': 'crypto-exchange-gateway',
            'percentiles': [50, 95, 99]
        }
        
        import requests
        response = requests.get(analytics_url, headers=headers, params=params)
        return response.json()
    
    def get_error_breakdown(self) -> Dict:
        """Phân tích lỗi theo loại và endpoint"""
        
        analytics_url = f"{self.base_url}/analytics/errors"
        headers = {"Authorization": f"Bearer {self.api_key}"}
        
        response = requests.get(analytics_url, headers=headers)
        return response.json()
    
    def generate_daily_report(self) -> str:
        """Tạo report hàng ngày"""
        
        # Lấy metrics từ 24 giờ qua
        latency = self.get_latency_stats(1440)  # 24 * 60
        errors = self.get_error_breakdown()
        
        report = f"""
        ========================================
        CRYPTO EXCHANGE API - BÁO CÁO HÀNG NGÀY
        ========================================
        Thời gian: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
        
        📊 LATENCY METRICS
        ────────────────────────────────────────
        • P50 (Median):     {latency.get('p50', 0):.2f}ms
        • P95:              {latency.get('p95', 0):.2f}ms
        • P99:              {latency.get('p99', 0):.2f}ms
        • Max:              {latency.get('max', 0):.2f}ms
        • HolySheep SLA:    <50ms ✓
        
        ❌ ERROR ANALYSIS
        ────────────────────────────────────────
        • Total Errors:     {errors.get('total', 0)}
        • Error Rate:       {errors.get('rate', 0):.2f}%
        • Top Errors:
        """
        
        for error in errors.get('top_errors', [])[:3]:
            report += f"\n  • {error['type']}: {error['count']} ({error['percentage']:.1f}%)"
        
        report += f"""
        
        💰 COST OPTIMIZATION
        ────────────────────────────────────────
        • Total Requests:   {errors.get('total_requests', 0):,}
        • HolySheep Cost:   ${errors.get('holysheep_cost', 0):.2f}
        • Savings vs AWS:   ${errors.get('savings', 0):.2f} (85%+)
        
        ========================================
        """
        
        return report


Khởi tạo dashboard

dashboard = APIMonitoringDashboard(holysheep_api_key="YOUR_HOLYSHEEP_API_KEY")

Record metrics trong quá trình vận hành

dashboard.record_metric('latency', 42.5, {'endpoint': '/order', 'exchange': 'binance'}) dashboard.record_metric('latency', 38.2, {'endpoint': '/balance', 'exchange': 'coinbase'}) dashboard.record_metric('error', 1, {'type': 'timeout', 'endpoint': '/order'})

In report

print(dashboard.generate_daily_report())

Lỗi Thường Gặp Và Cách Khắc Phục

Qua kinh nghiệm triển khai cho nhiều nền tảng trading, tôi đã tổng hợp 6 lỗi phổ biến nhất khi làm việc với Crypto Exchange API:

1. Lỗi "Signature verification failed" (Mã lỗi: 401)

Nguyên nhân: Signature không khớp do sai thứ tự params hoặc timestamp drift.

# ❌ SAI: Thứ tự params không nhất quán
params = {'quantity': 1, 'price': 100}  # Random order

✅ ĐÚNG: Sort params theo alphabet trước khi tạo signature

params = {'price': 100, 'quantity': 1} # Sorted alphabetically

Code fix hoàn chỉnh:

def create_safe_signature(secret_key: str, params: dict, timestamp: int) -> str: # Bước 1: Sort params theo key (bắt buộc) sorted_params = sorted(params.items()) # Bước 2: Encode thành query string query_string = '&'.join([f"{k}={v}" for k, v in sorted_params]) # Bước 3: Thêm timestamp vào message message = f"{query_string}×tamp={timestamp}" # Bước 4: Tạo HMAC signature signature = hmac.new( secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256 ).hexdigest() return signature

Verify signature trước khi gửi

def verify_signature(client_signature: str, params: dict, secret_key: str) -> bool: timestamp = params.get('timestamp', 0) server_signature = create_safe_signature(secret_key, params, timestamp) return hmac.compare_digest(client_signature, server_signature)

2. Lỗi "Timestamp expires" (Mã lỗi: 400)

Nguyên nhân: Timestamp của request chênh lệch quá nhiều so với server (thường >5 giây).

# ❌ SAI: Dùng time.time() độ chính xác thấp
timestamp = int(time.time())  # Chỉ có second precision

✅ ĐÚNG: Dùng millisecond precision và sync với NTP

import ntplib from datetime import datetime class TimeSync: def __init__(self): self.ntp_server = 'pool.ntp.org' self.offset = 0 def sync_with_ntp(self): """Đồng bộ thời gian với NTP server""" try: client = ntplib.NTPClient() response = client.request(self.ntp_server) self.offset = response.offset print(f"NTP synced. Offset: {self.offset:.3f}s") except Exception as e: print(f"NTP sync failed: {e}. Using local time.") def get_timestamp_ms(self) -> int: """Lấy timestamp chính xác với offset""" import time return int((time.time() + self.offset) * 1000) time_sync = TimeSync() time_sync.sync_with_ntp()

Sử dụng trong request:

timestamp = time_sync.get_timestamp_ms() print(f"Current timestamp: {timestamp}") # 1704067200000 (ms precision)

3. Lỗi "Rate limit exceeded" (Mã lỗi: 429)

Nguyên nhân: Gửi quá nhiều request trong một khoảng thời gian ngắn.

# ❌ SAI: Không kiểm soát rate limit
while True:
    response = make_request()  # Flood server!

✅ ĐÚNG: Implement rate limiter với token bucket

import time import threading from collections import deque class RateLimiter: def __init__(self, max_requests: int, window_seconds: int): self.max_requests = max_requests self.window_seconds = window_seconds self.requests = deque() self.lock = threading.Lock() def acquire(self) -> bool: """Chờ và lấy quota để gửi request""" with self.lock: now = time.time() # Remove expired requests while self.requests and self.requests[0] < now - self.window_seconds: self.requests.popleft() if len(self.requests) < self.max_requests: self.requests.append(now) return True # Calculate wait time wait_time = self.window_seconds - (now - self.requests[0]) if wait_time > 0: time.sleep(wait_time) self.requests.popleft() self.requests.append(time.time()) return True return False def __enter__(self): self.acquire() return self def __exit__(self, *args): pass

Sử dụng:

rate_limiter = RateLimiter(max_requests=10, window_seconds=1) # 10 req/s with rate_limiter: response = make_request() # Tự động kiểm soát rate

Hoặc với HolySheep - dùng built-in rate limit

def holysheep_rate_limited_request(endpoint: str, data: dict): """Request qua HolySheep với automatic rate limiting""" url = f"https://api.holysheep.ai/v1/{endpoint}" headers = { "Authorization": "Bearer YOUR_HOLYSHEEP_API_KEY", "X-Rate-Limit-Policy": "crypto-exchange" } response = requests.post(url, json=data, headers=headers) if response.status_code == 429: retry_after = int(response.headers.get('Retry-After', 1)) time.sleep(retry_after) return requests.post(url, json=data, headers=headers) return response

4. Lỗi "Invalid API key format"

Nguyên nhân: API key chứa ký tự đặc biệt hoặc bị truncate.

# ✅ ĐÚNG: Validate và sanitize API key trước khi sử dụng
import re

def validate_api_key(api_key: str) -> tuple[bool, str]:
    """
    Validate API key format
    Returns: (is_valid, error_message)
    """
    
    if not api_key:
        return False, "API key is empty"
    
    # Check length (thường 64 ký tự cho HMAC-SHA256)
    if len(api_key) < 32 or len(api_key) > 128:
        return False, f"Invalid API key length: {len(api_key)}"
    
    # Check allowed characters (alphanumeric và một số ký tự đặc biệt)
    if not re.match(r'^[A-Za-z0-9_-]+$', api_key):
        return False, "API key contains invalid characters"
    
    # Check for common typos
    common_typos = ['0', 'O', 'l', '1', 'I']
    if any(c in api_key for c in common_typos):
        return False, "API key contains ambiguous characters (0/O, l/1/I)"
    
    return True, ""

def sanitize_api_key(api_key: str) -> str:
    """Sanitize API key - loại bỏ whitespace và escape characters"""
    return api_key.strip().replace(' ', '').replace('\n', '').replace('\r', '')

Sử dụng:

raw_key = input("Enter API key: ") sanitized = sanitize_api_key(raw_key) is_valid, error = validate_api_key(sanitized) if not is_valid: print(f"Error: {error}") else: print("API key validated successfully")

5. Lỗi "Connection timeout" khi gọi nhiều endpoint

Nguyên nhân: Không dùng connection pooling hoặc DNS resolution chậm.

# ✅ ĐÚNG: Sử dụng session với connection pooling
import requests
from urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter

def create_optimal_session() -> requests.Session:
    """Tạo session được tối ưu cho high-frequency API calls"""
    
    session = requests.Session()
    
    # Connection pool với nhiều connections
    adapter = HTTPAdapter(
        pool_connections=20,      # Số lượng connection pools
        pool_maxsize=100,         # Max connections per pool
        max_retries=Retry(
            total=3,
            backoff_factor=0.5,
            status_forcelist=[500, 502, 503, 504]
        ),
        pool_block=False
    )
    
    session.mount('https://', adapter)
    session.mount('http://', adapter)
    
    # Set default timeout
    session.headers.update({
        'Connection': 'keep-alive',
        'Accept-Encoding': 'gzip, deflate'
    })
    
    return session

Với