VCO is a Layer 3.5 protocol designed for high-performance, verifiable, and decentralized content synchronization. It provides a modular, library-first workspace for building robust peer-to-peer applications.
VCO (v3.2) is built on a "Verifiable Content" model where every piece of data (Envelope) carries its own proof of integrity, authorship, and optionally, Proof-of-Work (PoW) or Zero-Knowledge Proof (ZKP) authorization.
- Verifiable Envelopes: Built-in support for Ed25519 signatures, ZKP-based authorization, and Proof-of-Work rate-limiting.
- Efficient Sync: Range-based set reconciliation (based on negentropy principles) for fast data synchronization over unreliable networks.
- Modular Architecture: Separated into core, crypto, transport, and sync layers for maximum reusability.
- Protocol Buffers: Strict wire-format compliance using Proto3 for all envelope and sync data.
- Transport Agnostic: High-performance libp2p-based transport with QUIC, Noise, and Yamux.
| Package | Description |
|---|---|
@vco/vco-core |
Envelope schema, validation logic, and ZKP/PoW interfaces. |
@vco/vco-crypto |
Cryptographic primitives and Noble-based adapters. |
@vco/vco-sync |
Range-based set reconciliation and sync state machines. |
@vco/vco-transport |
Libp2p adapters, session management, and TOL (Transport Obfuscation Layer). |
@vco/vco-relay |
A standalone bootstrap relay and storage server. |
@vco/vco-desktop |
A cross-platform desktop application (Tauri + React). |
VCO is managed as a monorepo using NPM workspaces.
- Node.js: v18 or higher
- NPM: v8 or higher
- Git
- Rust (for desktop app development)
# Clone the repository
git clone https://github.com/imattau/VCO.git
cd VCO
# Install dependencies
npm install
# Build the project (generates Protobuf bindings and compiles TypeScript)
npm run buildimport { createEnvelope, validateEnvelope, VCOCore } from '@vco/vco-core';
import { NobleCryptoProvider } from '@vco/vco-crypto';
const crypto = new NobleCryptoProvider();
const core = new VCOCore(crypto);
// Create a signed envelope
const envelope = createEnvelope({
payload: new TextEncoder().encode("Hello VCO"),
payloadType: 1, // e.g., plain text
creatorId: myPublicKey,
privateKey: myPrivateKey,
}, crypto);
// Validate integrity and signature
const isValid = await core.validateEnvelope(envelope);
console.log(`Is valid: ${isValid}`);The relay server can be installed on a Linux system using the provided installer:
sudo ./scripts/install-relay.sh installOr run manually from the workspace:
cd packages/vco-relay
VCO_CONFIG_PATH=./config.json npm startTo start the desktop application in development mode:
# Requires Rust installed
npm run tauri dev --workspace=@vco/vco-desktop- Specification: Detailed wire-format and protocol rules.
- Architecture: High-level system design.
- Relay Design: Technical overview of the relay server.
- ADRs: Architectural Decision Records.
We welcome contributions to the VCO protocol! Please adhere to our mandatory engineering policies:
- Library First: Prefer standard/platform libraries over custom code.
- Schema Compliance: All wire-format changes must be made in
proto/vco/v3/vco.proto. - Modular Boundaries: Keep packages decoupled and APIs narrow.
- Test Driven: Every feature or fix must include unit and integration tests.
For detailed guidelines, please refer to AGENTS.md.
- Gemini (AI Agent) - Automated installer, relay enhancements, and protocol refinements.
- lostcause - Lead architect and developer.
This project is licensed under the MIT License. See the LICENSE file for details.
