Weshnet - Async Mesh Network Protocol
The protocol layer powering p/berty/berty|Berty - an async mesh network protocol for extreme communication conditions.
Overview
- GitHub: github.com/berty/weshnet
- Latest: v2.3.0
- Purpose: Standalone toolkit for building decentralized communication apps
- Formerly: Known as the Wesh Protocol
Architecture
Core Components
- Group-Based Communication: All interactions within virtual spaces
- Dual Logs: Message log + metadata log per group
- Ordering: OrbitDB immutable logs with Lamport Clocks
Transport Layers
- Internet: Standard TCP/IP via libp2p
- Offline: Bluetooth Low Energy (BLE) and mDNS
- Direct: Integrates with libp2p transports
Key Technologies
- libp2p: DHT, PubSub, NAT traversal
- IPFS: Distributed storage
- OrbitDB: CRDT for message ordering
- gRPC: Cross-language API support
Innovations
- gomobile-ipfs: Run full IPFS nodes on mobile
- go-orbit-db: Go port of OrbitDB
- Custom BLE drivers: For libp2p transport
Integration
Weshnet can be integrated into any application needing:
- Offline-first communication
- Privacy-preserving messaging
- Censorship resistance
- Delay-tolerant networking
Relationship to Berty
Weshnet is to Berty what libp2p is to IPFS - the foundational protocol layer that enables the application layer above it.
Sources
- GitHub Repository: https://github.com/berty/weshnet - Async mesh network protocol for extreme communication conditions