The Core Architecture Stack¶
Nube is implemented as a single-binary Go application utilizing the following technical layer architecture.
Layer 0: Crypto-Primitives & Identity¶
Hash Function: BLAKE3. Standard for Nube Content Identifiers (CIDs).
Encryption: XChaCha20-Poly1305 AEAD.
Identity: Ed25519 cryptographic keypairs for self-sovereign peer identification.
Traceability: Implements [FUNC-CORE-INTEGRITY] and [FUNC-SWARM-IDENTITY].
Identifier: [TECH-CRYPTO]
Layer 1: Content-Addressable Storage (CAS)¶
Chunking: FastCDC (Content-Defined Chunking). Cuts files into variable-sized chunks based on content boundaries.
Addressing: Content addressed by Blake3-hashed CIDs.
Integrity Validation: Every chunk is verified against its hash during ingestion.
Traceability: Implements [FUNC-CORE-DEDUPLICATION] and [FUNC-CORE-INTEGRITY].
Identifier: [TECH-BLOCKSTORE]
Layer 2: The Merkle Directed Acyclic Graph (DAG)¶
Serialization: Protocol Buffers (Protobuf).
Structure: Directories and files are represented as recursive Merkle DAG trees.
DOS Hardening: Node width limits (4096 links max) and node size limits (2MB max).
Traceability: Implements [FUNC-CORE-INTEGRITY].
Identifier: [TECH-MERKLE-DAG]
Layer 3: Metadata & Key-Value Persistence¶
Type: Delta-State Observed-Remove Set (OR-Set) Conflict-Free Replicated Data Types (CRDTs).
Persistence Store: BadgerDB for local personal deployments; configured for transactional safety.
Traceability: Implements [FUNC-SYNC-FABRIC] and [FUNC-DYNAMIC-SHARING].
Identifier: [TECH-METADATA-CRDT]
Layer 4: Transport Protocol & Discovery¶
Stack: libp2p over UDP/QUIC.
Discovery: Local mDNS broadcasts and global Kademlia DHT peer routing tables.
Messaging: Length-delimited Protobuf streams with a 2MB maximum limit.
Traceability: Implements [FUNC-P2P-DISCOVERY] and [FUNC-SYNC-FABRIC].
Identifier: [TECH-TRANSPORT]
Layer 5: Virtual Filesystem (FUSE)¶
FUSE Mount: Go FUSE API mapping filesystem syscalls (read, write, mkdir, rename, unlink) to Blockstore CAS and CRDT updates.
Traceability: Implements [FUNC-FUSE-MOUNT].
Identifier: [TECH-NATIVE-FUSE]
Layer 6: React Web Client & Local Server¶
Architecture: Local HTTP REST API served by the Go binary, communicating with a built Vite/React client using Lucide-React and TailwindCSS.
State Reactivity: Server-Sent Events (SSE) stream browser updates.
Traceability: Implements [FUNC-WUI-BROWSER].
Identifier: [TECH-WUI-DESKTOP]