Network Topology
This document describes the network architecture and communication patterns in NCN Network v2.
Overview
NCN Network is a distributed system with four main node types communicating over multiple protocols.
┌─────────────────────────────────────────────────────────────────────────────┐
│ Network Topology │
│ │
│ Internet / Public │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Clients │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │Client A │ │Client B │ │Client C │ │ │
│ │ └────┬────┘ └────┬────┘ └────┬────┘ │ │
│ │ │ │ │ │ │
│ │ │ HTTP/gRPC │ │ │ │
│ │ │ │ │ │ │
│ └─────────┼──────────────┼──────────────┼───────────────────────────────┘ │
│ │ │ │ │
│ └──────────────┼──────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ Gateway Layer │ │
│ │ ┌─────────────────────────────────────────────────────────────┐ │ │
│ │ │ Gateway Nodes │ │ │
│ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │
│ │ │ │Gateway 1│ │Gateway 2│ │Gateway 3│ │ │ │
│ │ │ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │
│ │ └─────────┼──────────────┼──────────────┼─────────────────────┘ │ │
│ └──────────────┼──────────────┼──────────────┼─────────────────────────┘ │
│ │ │ │ │
│ │ gRPC │ │ │
│ │ │ │ │
│ ┌──────────────┼──────────────┼──────────────┼─────────────────────────┐ │
│ │ │ │ │ Compute Layer │ │
│ │ ┌─────────▼──────────────▼──────────────▼─────────────────────┐ │ │
│ │ │ Compute Nodes │ │ │
│ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │
│ │ │ │Compute 1│ │Compute 2│ │Compute 3│ │Compute N│ │ │ │
│ │ │ │ (GPU) │ │ (GPU) │ │ (CPU) │ │ (GPU) │ │ │ │
│ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │ │
│ │ └─────────────────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
│ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ Registry Layer (P2P) │ │
│ │ ┌─────────────────────────────────────────────────────────────┐ │ │
│ │ │ P2P Registry Nodes │ │ │
│ │ │ ┌─────────┐ ◀───▶ ┌─────────┐ ◀───▶ ┌─────────┐ │ │ │
│ │ │ │Registry1│ │Registry2│ │Registry3│ │ │ │
│ │ │ │(Validator) │(Validator) │(Validator) │ │ │
│ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │
│ │ └─────────────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │
│ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ Blockchain Layer │ │
│ │ ┌─────────────────────────────────────────────────────────────┐ │ │
│ │ │ Ethereum-Compatible Network │ │ │
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
│ │ │ │ InferencePayment│ │ NCNToken │ │ │ │
│ │ │ │ Contract │ │ (ERC20) │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
│ │ └─────────────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘Node Types
Gateway Nodes
Role: Entry points for clients, task routing, payment coordination
Connections:
Inbound: Clients (HTTP, gRPC, WebSocket)
Outbound: Compute nodes (gRPC), Registry (gRPC), Blockchain (JSON-RPC)
Ports:
8080
HTTP
REST API
50051
gRPC
Client & compute API
9000
WebSocket
Real-time updates
Compute Nodes
Role: Execute AI models, return results
Connections:
Inbound: None (pull-based)
Outbound: Gateway (gRPC), Registry (gRPC)
Ports: No exposed ports (connects outbound to gateway)
P2P Registry Nodes
Role: Node discovery, validator consensus, subnet management
Connections:
Inbound: Gateways (gRPC), compute nodes (gRPC), other registries (P2P)
Outbound: Other registries (P2P), Blockchain (JSON-RPC)
Ports:
50050
gRPC
Registry API
8828
libp2p
P2P networking
Blockchain
Role: Payment settlement, validator registry, subnet records
Connections:
Inbound: All nodes (JSON-RPC)
Outbound: Other blockchain nodes
Communication Protocols
Client ↔ Gateway
HTTP/REST
Simple requests
JSON
gRPC
High-performance
Protobuf
WebSocket
Real-time updates
JSON
Gateway ↔ Compute
gRPC
Task dispatch
Protobuf
gRPC Streaming
Task reception
Protobuf
Gateway/Compute ↔ Registry
gRPC
Validation requests
Protobuf
gRPC
Node discovery
Protobuf
gRPC
Subnet management
Protobuf
Registry ↔ Registry
libp2p Kademlia
Peer discovery
Binary
libp2p DHT
State replication
Binary
All Nodes ↔ Blockchain
JSON-RPC
Transaction submission
JSON
JSON-RPC
Event monitoring
JSON
WebSocket
Real-time events
JSON
Request Flow
Inference Request Path
Network Requirements
Bandwidth
Client → Gateway
10 Mbps
100 Mbps
Gateway → Compute
100 Mbps
1 Gbps
Gateway → Registry
10 Mbps
100 Mbps
Registry ↔ Registry
10 Mbps
100 Mbps
Latency
Client → Gateway
< 50ms
200ms
Gateway → Compute
< 10ms
50ms
Gateway → Registry
< 10ms
50ms
Registry ↔ Registry
< 100ms
500ms
Firewall Rules
Gateway:
Compute:
Registry:
High Availability
Gateway HA
Registry HA (P2P)
Compute HA
Multiple compute nodes provide redundancy:
Tasks automatically route to available nodes
Failed tasks retry on different nodes
No single point of failure
Security Zones
Related Documentation
System Overview - High-level architecture
Security Model - Security architecture
Deployment - Deployment options
Last updated
