qaul قول

Last modified by Zenna Elfen on 2025/11/24 11:42

What's the name of the project?

qaul قول

What are key aspects of this project?
Qaul is an internet independent wireless mesh communication app which lets you communicate peer-to-peer with the people around you, without any Internet or communication infrastructure.
What's the projects website?
https://qaul.net
Add an image for the project by clicking the image in the menu. This image will be visible in the table.

qaul قول

Synchronization answers how updates flow between peers and how they determine what data to exchange. This layer is about diffing, reconciliation, order, causality tracking, and efficient exchange, not persistence or user-facing collaboration semantics. Examples: Range-Based Set Reconciliation, RIBLT, Gossip-based sync, State-based vs op-based sync, Lamport/Vector/HLC clocks, Braid Protocol
Core
How do peers detect differences and synchronize state?

Two different package routing protocols: real time qaul mesh protocol & DTN routing protocol. Additionally public messaging pubsub topic based message synchronization

This layer defines how shared data evolves when multiple peers edit concurrently. It focuses on conflict-free merging, causality, and consistency of meaning, not transport or storage. CRDTs ensure deterministic convergence, while event-sourced or stream-driven models maintain a history of all changes and derive consistent state from it. Examples: CRDTs (Yjs, Automerge), OT, Event Sourcing, Stream Processing, Version Vectors, Peritext
Not Relevant
How do peers collaboratively change shared data and merge conflicts?
This layer focuses on durability, consistency, and redundancy. It handles write-paths, crash-resilience, and replication semantics across nodes. It is the “database/storage engine” layer where data lives and survives over time, independent of sync or merging logic. Examples: SQLite, IndexedDB, LMDB, Hypercore (append-only logs), WALs, Merkle-DAGs (IPFS/IPLD), Blob/media storage
Not Relevant
How is data persisted locally and replicated between peers?
Discovery occurs in two phases: 1. Peer Discovery → finding any nodes 2. Topic Discovery → finding relevant nodes or resources These mechanisms enable decentralized bootstrapping and interest-based overlays. Examples: DHTs (Kademlia, Pastry), mDNS, DNS-SD, Bluetooth scanning, QR bootstrapping, static peer lists, Interest-based routing, PubSub discovery (libp2p), Rendezvous protocols
Core
How do peers find each other, and how do they discover content in the network?

mdns peer discovery & BLE advertising peer discovery; user discovery within routing protocol

Identity systems ensure reliable mapping between peers and cryptographic keys. They underpin authorization, federated trust, and secure overlays. Examples: PKI, Distributed Identities (DIDs), Web-of-Trust, TOFU (SSH-style), Verifiable Credentials (VCs), Peer key fingerprints (libp2p PeerIDs), Key transparency logs
Core
How peers identify themselves, authenticate, and establish trustworthy relationships?

qaul ID is the verifiable cryptographic hash of the public key. Read more at https://qaul.github.io/qaul.net/#/qaul/rust/qaulId

This layer provides logical connections and flow control. QUIC and WebRTC bring modern congestion control and encryption defaults; Interpeer explores transport beyond IP assumptions. Examples: TCP, UDP, QUIC, SCTP, WebRTC DataChannels, Interpeer transport stack. Examples: TCP, UDP, QUIC, SCTP, WebRTC DataChannels, Interpeer transport stack
Core
How do peers establish end-to-end byte streams and reliable delivery?

qaul uses: libp2p TCP stack (TCP connection & Multiplexing), Quick, qaul's own BLE transport protocol

Highly relevant for offline-first / edge networks, device-to-device communication, and mesh networks and relates to the hardware which facilitates connections. Examples: Ethernet, Wi-Fi Direct / Wi-Fi Aware (post-AWDL), Bluetooth Mesh, LoRa, NFC, Cellular, CSMA/CA, TDMA, FHSS
Core
How does data move across the medium?

LAN transport (any LAN network: Wifi, phone thetering, Internet coffee, community network), BLE Bluetooth Low Energy, Internet overlay. See more at: https://qaul.net/tutorials/user-documentation/

Content addressing ensures immutability, verifiability, and deduplication. Identity of data = cryptographic hash, enabling offline-first and tamper-evident systems. Examples: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)
Core
How is data addressed and verified by content, not location?

messages are addressed via their sha256 content hash. See more: https://qaul.github.io/qaul.net/#/qaul/rust/security

Connectivity ensures peers bypass NATs/firewalls to reach each other. Examples: IPv6 direct, NAT Traversal, STUN, TURN, ICE (used in WebRTC), UDP hole punching, UPnP
Core
How can two peers connect directly across networks, firewalls, and NATs?

currently: direct IPv4/IPv6 connections; future: NAT Traversal. See more here: https://qaul.github.io/qaul.net/#/qaul/rust/connecting-nodes-statically , https://github.com/qaul/qaul.net/blob/main/docs/proposals/Privacy-Aware-Signaling-Before-Holepunching.md

Manages connection lifecycle, including authentication handshakes, reconnection after drops, and session continuation. Examples: TLS handshake semantics, Noise IK/XX patterns, session tokens, keep-alive heartbeats, reconnection strategies, session resumption tickets
Core
How are connections initiated, authenticated, resumed, and kept alive?

TLS, Noise KK, heartbeats

Serialization ensures portable data representation, forward-compatible schemas, and efficient messaging. Examples: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)
Tangental
How is data encoded, structured, and/or made interoperable between peers?

own protobuf message & package definition, see more here: https://github.com/qaul/qaul.net/tree/main/rust/libqaul/src/rpc , https://docs.qaul.net/api/qaul_cli/rtc/proto_net/index.html

Bulk data syncing has different trade-offs than small collaborative state (chunking, deduplication, partial transfer, resume logic). Essential for media and archival P2P use-cases. Examples: BitTorrent chunking, IPFS block-store, NDN segments, rsySerialization ensures portable data representation, forward-compatible schemas, and efficient messaging. Examples: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)nc-style delta sync, ZFS send-receive, streaming blob transfers
Not relevant
How are large objects transferred and deduplicated efficiently across peers?
Provides durable on-device state and local computation (event sourcing, materialization, compaction). Enables offline-first writes and deterministic replay. Examples: RocksDB, LevelDB, SQLite, LMDB, local WALs/append-only logs, embedded stream processors (NATS Core JetStream mode, Actyx-like edge runtimes), Kafka-like libraries
Core
How do nodes persist, index, and process data locally—without external servers?

pure local-first P2P design, everyting is saved locally first

Ensures P2P apps don’t corrupt state on crashes. Tied to local storage & stream-processing, and critical in offline-first and distributed update pipelines. Abortability is the updated term, as per Mr. Kleppmann for Atomicity as part of the [ACID abbreviation](https://www.youtube.com/watch?v=5ZjhNTM8XU8). Examples: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)
Tangental
How do nodes recover and maintain correctness under failure?

Crash save data base