GH GambleHub

Escalar nós de rede

(Secção: Ecossistema e Rede)

1) Rolos de nós e contornos de tráfego

Validadores/produtores (consensus/block/rollup-sequencer): caminho crítico de finalização.
Reder/indexador (read-only/API/arquivo): atende a solicitações de aplicativos e analistas.
Relier/ponte (cross-domain): transferência de mensagens/ativos entre os domínios.
Gateway/edge (ingress/gRPC/WebSocket/QUIC): recepção de solicitações de clientes, rate-limit, dinheiro.
Metria/observabilidade corporal: coleta de métricas/logs/trailers, amostras sintéticas.

Cada papel tem seu próprio SLO, orçamento de erro e política de zoom.

2) Modelos de zoom

2. 1 Vertical (scale-up)

Aumento do CPU/RAM/SSD/NIC. Rápido para picos, mas restrito ao ferro e pode aumentar o custo da unidade de tráfego.

2. 2 Horizontal (scale-out)

Adicione réplicas atrás de balanceadores/filas. Requer idempotidade, política de sticky, quórum e capas conveniadas (ou sua deficiência).

2. 3 Disseminação Funcional

Separação de responsabilidades: consensus nódulos são isolados; RPC/API - separadamente; indexador/arquivo - separadamente; bridge/relayer - separadamente.

2. 4 Geo-scale

Clusters regionais (EU/US/AP) + anycast/GeoDNS/Latency Aware LB; replicação com finalização/atrasos e caixas locais.

2. 5 Charding/particionização

Divisão por chave (chainId, shard, topic) para filas/indexadores e armazéns invertebrados.

3) Caminho de consulta: balanceamento, cachê, QoS

L4/L7 balanço: health-checks, sticky por token/trace-id, circuito-breaker, outlier-ejation.

Kashi:
  • em edge (short-TTL para RPC frequentemente lido);
  • dentro do processador (read-through, write-around para índices);
  • cachês negativos (não encontrado).
  • Classe QoS: P0 (finalização/ponte/pagamentos), P1 (alimentos), P2 (bulk/arquivo).
  • Backpressure: tokens/créditos, limitação de solicitações de concur, filas com DLQ.
  • Admissions: filtro pré (auth, limites, geo/sanções), rejeição precoce de solicitações «caras».

4) Gerenciamento de estado: snapshots, lining, arquivo

Full/Pruned: nós pruned para RPC; Archive - para consultas retrospectivas em uma bala separada.
Snapshots/fast-sync: snapshots regulares, bootstrap rápido novas réplicas.
Hot/Warm/Cold armazenamento: estado quente em NVMe, blocos históricos - S3/objeto com índices.
Garbadge-collect/competition: janelas programadas, não durante picos.
D/Batch-tampões (para L2/pontes): garantia de entrega e período de limpeza com recibos de lago.

5) Filas e streaming

Ingress: Kafka/Pulsar/NATS с partition-key = `chainId|shard|topic`.
Grupos de Consumer: zoom em partituras, processador idumpotente (outbox/inbox).
DLQ e retrai: backoff exponencial, quarentena poison-mensagem.
Ordem alinhada, como parte de uma partitura para o determinismo.

6) Transporte e otimização de rede

QUIC/HTTP/2: multiplexe, head-of-line correção.
Sintonização TCP: BBR/CUBIC, tampões aumentados, 'SO _ REUSEPORT'.
Kernel/eBPF: pilha de rede acelerada, hash consistente para balanceamento.
NIC offload и pinning IRQ к NUMA.
gRPC: opções keepalive/ping, limitações max-inflight.
WebSocket: pool de conexões, ping/pong, limite de assinaturas por cliente.

7) Confiabilidade: quórum, degradação, testes de caos

Quórum de leitura/escrita (se aplicável), fensing do líder.
Modos de degradação: readonly, «apenas finalizados», desativação de métodos pesados.
Engenharia Chaos: atrasos/perdas, reinício, falha de disco/rede, «reorg rápido» do cenário.

8) SLI/SLO e metas

SLI (exemplo):
  • p95 RPC latency em classes de métodos;
  • Success-rate; Queue-lag p95;
  • Time-to-finality p95 (para reles/pontes);
  • Snapshot bootstrap time;
  • State growth/day; CPU/IO saturation.
SLO (orientações):
  • P0 RPC p95 ≤ 400 ms; Availability ≥ 99. 95%;
  • Finality relay p95 ≤ 3 min;
  • Queue-lag P0 p95 ≤ 2 с;
  • Bootstrap new reader ≤ 30 мин (fast-sync+snapshot);
  • Error budget burn por janela de 2 horas ≤ 2 x.

9) Observabilidade e alerting

Métricas: latency (historograma), RPS, errors (em classes), queue-lag, GC/heap, disk-io, p2p peers, gossip-rate.
Trailers: «trace _ id» por meio de edge→RPC→indeksator→khraneniye→most.
Logs: estruturados, correlação por 'request _ id'.
Alert: burn-rate P0, queue-lag, peer-count abaixo do limiar, reorg-spacks, snapshot-drivt.

10) Pattern de skeiling automático

HPA/VPA (K8s): по CPU/latency/RPS/queue-lag; KEDA de comprimento de topics.
Step-escaling: perfis de picos diurnos; Preditiva por ML/sazonalidade.
Warm-spares: réplicas aquecidas sem tráfego (graceful promote).
Safe rollout: canary + outlier-ejection + SLO-гейты.

11) Segurança e isolamento

mTLS/pinning chaves; RBAC/ABAC para métodos; QoS-limite per org/tenant.
Rate-limit e DoS-shield: tokens, capches para RPC público, anomalia-detecção.
Gestão secreta, tokens curtos, rotação.
Barras de areia: Poulas separadas para arquivos/clientes públicos.

12) Configurações de arbitragem

12. 1 K8s: passarela RPC (escala horizontal)

yaml apiVersion: apps/v1 kind: Deployment metadata: { name: rpc-gateway }
spec:
replicas: 6 strategy: { type: RollingUpdate, rollingUpdate: { maxSurge: 2, maxUnavailable: 0 } }
selector: { matchLabels: { app: rpc-gateway } }
template:
metadata: { labels: { app: rpc-gateway, qos: P0 } }
spec:
containers:
- name: gateway image: org/rpc-gateway:2. 4. 1 ports: [{ containerPort: 443 }]
resources:
requests: { cpu: "1", memory: "2Gi" }
limits:  { cpu: "4", memory: "6Gi" }
env:
- { name: MAX_CONCURRENCY, value: "400" }
- { name: CACHE_TTL_MS, value: "200" }
readinessProbe: { httpGet: { path: /healthz, port: 443 }, initialDelaySeconds: 5, periodSeconds: 5 }
livenessProbe: { httpGet: { path: /livez, port: 443 }, initialDelaySeconds: 10, periodSeconds: 10 }
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: rpc-gateway-hpa }
spec:
scaleTargetRef: { apiVersion: apps/v1, kind: Deployment, name: rpc-gateway }
minReplicas: 6 maxReplicas: 36 metrics:
- type: Pods pods:
metric:
name: request_latency_p95_ms target:
type: AverageValue averageValue: 350m  # 350 мс

12. 2 Envoy: priorização e outler-ejation

yaml clusters:
- name: readers type: EDS lb_policy: LEAST_REQUEST outlier_detection:
consecutive_5xx: 5 interval: 2s base_ejection_time: 30s circuit_breakers:
thresholds:
- priority: DEFAULT max_connections: 20000 max_pending_requests: 5000 max_requests: 20000 health_checks:
- timeout: 1s interval: 3s http_health_check: { path: /healthz }
route_config:
request_headers_to_add:
- header: { key: x-trace-id, value: "%REQ(X-TRACE-ID)%" }
weighted_clusters:
clusters:
- name: readers weight: 100

12. 3 Kafka: partilhar domínios

yaml topic: "rpc. events"
partitions: 48 replicationFactor: 3 config:
retention. ms:  604800000 # 7 days max. message. bytes: 1048576 min. insync. replicas: 2 cleanup. policy: delete

12. 4 Políticas de QoS e limites

yaml qos:
P0:
rps_limit_per_org: 1500 queue_lag_p95_ms: 2000 retry: { attempts: 3, backoff_ms: [100,400,800] }
P1:
rps_limit_per_org: 800
P2:
rps_limit_per_org: 200 admissions:
denylist_methods: ["eth_getLogs(>10k blocks)"]
heavy_query_guard: { max_range_blocks: 5000, require_token: true }

13) Esquemas de dados e exemplos de consultas

13. 1 Métricas de nós (diretório)

sql
CREATE TABLE node_metrics (
ts TIMESTAMPTZ,
node_id TEXT, role TEXT, region TEXT,
rps INT, latency_p95_ms INT, errors_5xx INT,
queue_lag_ms INT, cpu NUMERIC, mem NUMERIC, io_wait NUMERIC
);

13. 2 controle SLO e burn-rate

sql
SELECT date_trunc('hour', ts) AS h, role,
AVG(latency_p95_ms) AS p95,
100. 0 SUM(CASE WHEN latency_p95_ms <= 400 THEN 1 ELSE 0 END)/COUNT() AS slo_hit_pct
FROM node_metrics
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY 1,2;

13. 3 Planejamento de carga

sql
SELECT region, role,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY rps) AS rps_p95,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY queue_lag_ms) AS lag_p95
FROM node_metrics
WHERE ts >= now() - INTERVAL '7 days'
GROUP BY region, role;

14) Regulamentos operacionais

Diariamente: Relatório de SLO, Capasiti Delta, Estado de Snapshot, peer-health.
Semanalmente: revisão de limites/QoS, teste de DR. (bootstrap de snapshot), verificação de prouning e compactos.
Antes do lançamento, rollout de canário, gates SLO e métricas observáveis, plano de reversão.
Contabilidade de custo: CTS por 1k consultas, TPS _ per _ $ (eficiência por dólar).

15) Playbook incidentes

A. Explosão de latência RPC p95

1. Ativar P2-throttle e rebaixar sampling; 2) aumentar as réplicas gateway/reader;

2. transferir parte do tráfego para o dinheiro apenas; 4) abrir a análise de métodos quentes, se necessário - deny-rulas.

B. Queue-lag em pneu> SLO

1. O scale automático dos consoadores (KEDA), 2) redistribuir as partições, 3) parar temporariamente os bulk-jobs.

C. Queda de peer-count em validador/relevo

1. Reiniciamento de p2p módulos, 2) mudança de banco, 3) verificação de LCA/NAT, 4) mudança para reserva.

D. Longo bootstrap nova réplica

1. Mudar para o snapshot fresco, 2) elevar a largura de banda IO, 3) remover temporariamente os índices de arquivo.

E. Spike reorg/atrasos de ponte

1. Aumentar as confirmações K/janela, 2) ativar modo «finalized-only», 3) informar os consumidores.

16) Folha de cheque de implementação

1. Definir papéis de nó e seus orçamentos de erro SLO.
2. Separar as funções consensus/RPC/indexador/arquivo/ponte/edge.
3. Incluir balanço, QoS, backpressure e fila com DLQ.
4. Personalizar snapshots/fast-sync, lining e armazenamento em vários níveis.
5. Ligar métricas/trailers/logs, dashboards e burn-rate alerts.
6. Personalizar scailing automático (HPA/KEDA) e lançamentos canários.
7. Fazer testes de caos e exercícios regulares de DR..
8. Introduzir regulamentos operacionais e controle de custo.

17) Glossário

Backpressure - Mecanismos de controle de fluxo de entrada para sobrecarga.
DLQ - «fila morta» para mensagens problemáticas.
Pruning - remover um estado histórico fora da janela atual.
Fast-sync/Snapshot é uma forma acelerada de sincronizar a nova réplica.
Outler-ejation é a exclusão de instâncias degradadas do pool.
Burn-rate - velocidade de vazão do orçamento de erros em relação ao SLO.

Resultado: a dimensão de nódulos de rede não é apenas «adicionar réplicas», mas sim a disciplina do sistema de arquitetura, QoS, gestão de estado e rigor operacional. Seguindo este quadro (separação de papéis, filas, cachês, scale automático, observabilidade e SLO nítido), o ecossistema tem desempenho previsível, resistência a picos e custo controlado por unidade de tráfego.

Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Telegram
@Gamble_GC
Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.