Skip to content

Arquitetura da Rede

A Cloud Service opera em uma rede peer-to-peer descentralizada que permite transações seguras e sem confiança, além de computação distribuída.

Visão Geral da Rede

┌─────────────────────────────────────────────────────────────────────┐
│                        Rede Cloud Service                            │
│                                                                       │
│    ┌──────────┐         ┌──────────┐         ┌──────────┐           │
│    │   Nó 1   │◄───────►│   Nó 2   │◄───────►│   Nó 3   │           │
│    │(Completo)│         │(Mineração│         │(Completo)│           │
│    └────┬─────┘         └────┬─────┘         └────┬─────┘           │
│         │                    │                    │                   │
│         │              ┌─────▼─────┐              │                   │
│         └─────────────►│   Nó 4   │◄─────────────┘                   │
│                        │  (Leve)  │                                   │
│                        └─────┬─────┘                                   │
│                              │                                         │
│    ┌──────────┐         ┌────▼─────┐         ┌──────────┐            │
│    │   Nó 5   │◄───────►│   Nó 6   │◄───────►│   Nó 7   │            │
│    │  (API)   │         │(Completo)│         │(Mineração│            │
│    └──────────┘         └──────────┘         └──────────┘            │
│                                                                       │
└─────────────────────────────────────────────────────────────────────┘

Camadas da Rede

Camada 1: Rede P2P

A camada base para comunicação entre nós:

  • Protocolo de Descoberta — Nós encontram peers automaticamente
  • Propagação de Mensagens — Blocos e transações são transmitidos
  • Gerenciamento de Peers — Conexões são mantidas e gerenciadas

Camada 2: Blockchain

A estrutura de dados imutável que registra todas as transações:

  • Blocos — Agrupamentos de transações com timestamps
  • Encadeamento — Cada bloco referencia o anterior
  • Consenso — ZelHash garante concordância

Camada 3: Aplicação

Serviços e aplicações construídas sobre a blockchain:

  • Smart Contracts — Lógica de negócios programável
  • APIs — Interfaces para desenvolvedores
  • dApps — Aplicações descentralizadas

Protocolo de Rede

Mensagens do Protocolo

MensagemDescrição
versionHandshake inicial entre peers
verackConfirmação de versão
addrLista de endereços de nós conhecidos
invInventário de objetos disponíveis
getdataRequisição de objetos específicos
blockTransmissão de bloco completo
txTransmissão de transação
ping/pongVerificação de liveness

Configurações de Porta

PortaUso
16178Mainnet P2P
16179Testnet P2P
16180API JSON-RPC/REST
16181WebSocket

Pool de Memória

O pool de memória (mempool) armazena transações não confirmadas:

┌──────────────────────────────────────────┐
│               Pool de Memória            │
│                                          │
│  Transações pendentes (não confirmadas)  │
│                                          │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  │
│  │  Tx 1   │  │  Tx 2   │  │  Tx 3   │  │
│  │ Alta    │  │ Média   │  │ Baixa   │  │
│  │ Taxa    │  │ Taxa    │  │ Taxa    │  │
│  └─────────┘  └─────────┘  └─────────┘  │
│                                          │
│  Mineradores selecionam por taxa         │
│                                          │
└──────────────────────────────────────────┘

Sincronização da Blockchain

Download Inicial de Blocos (IBD)

Quando um novo nó ingressa na rede:

  1. Conecta a peers iniciais (seeders)
  2. Solicita cabeçalhos de bloco
  3. Valida cabeçalhos
  4. Baixa e valida blocos completos
  5. Constrói o estado UTXO

Reorganização de Cadeia

Quando uma cadeia mais longa é descoberta:

  1. Detectar bloco com mais trabalho
  2. Reverter blocos da cadeia atual
  3. Aplicar blocos da nova cadeia
  4. Atualizar estado

Descoberta de Peers

Seeders DNS

Nós bootstrap iniciais:

seed.cs.network
seed2.cs.network
seed-eu.cs.network

Adicionar Peers Manualmente

bash
# Via configuração
addnode=192.168.1.100:16178
addnode=node.cs.network

# Via CLI em tempo de execução
cs-cli addnode "192.168.1.100:16178" add

Próximos Passos

Lançado sob a Licença MIT.