All Projects → vacp2p → Specs

vacp2p / Specs

Modular p2p messaging stack, with a focus on secure messaging.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Specs

rfc
Modular p2p messaging stack, with a focus on secure messaging.
Stars: ✭ 81 (+102.5%)
Mutual labels:  protocol, messaging, p2p
dione
Dione is an anonymize and encrypted messaging system build on top on a peer to peer layer.
Stars: ✭ 41 (+2.5%)
Mutual labels:  messaging, p2p
research
research, notes & ideas on various subjects
Stars: ✭ 54 (+35%)
Mutual labels:  messaging, p2p
Bittorrent Protocol
Simple, robust, BitTorrent peer wire protocol implementation
Stars: ✭ 279 (+597.5%)
Mutual labels:  p2p, protocol
Zenoh
zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
Stars: ✭ 182 (+355%)
Mutual labels:  messaging, protocol
simplex-chat
SimpleX - the first messaging platform operating without user identifiers of any kind - 100% private by design! iOS and Android apps are released 📱!
Stars: ✭ 1,975 (+4837.5%)
Mutual labels:  protocol, messaging
Ipfs Desktop
An unobtrusive and user-friendly desktop application for IPFS on Windows, Mac and Linux.
Stars: ✭ 3,710 (+9175%)
Mutual labels:  p2p, protocol
Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+37830%)
Mutual labels:  p2p, protocol
Qtox
qTox is a chat, voice, video, and file transfer IM client using the encrypted peer-to-peer Tox protocol.
Stars: ✭ 3,843 (+9507.5%)
Mutual labels:  messaging, p2p
Ipfs
Peer-to-peer hypermedia protocol
Stars: ✭ 20,128 (+50220%)
Mutual labels:  p2p, protocol
Antidote
No longer maintained
Stars: ✭ 388 (+870%)
Mutual labels:  messaging, p2p
Berkanansdk
Bluetooth mesh messaging SDK for apps
Stars: ✭ 150 (+275%)
Mutual labels:  messaging, p2p
Conceal Core
Conceal Core - Daemon & Wallets (CLI)
Stars: ✭ 72 (+80%)
Mutual labels:  messaging, p2p
Pjon
PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
Stars: ✭ 2,615 (+6437.5%)
Mutual labels:  p2p, protocol
Berty
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
Stars: ✭ 5,101 (+12652.5%)
Mutual labels:  messaging, p2p
bigbrother-specs
Research and specification for Big Brother protocol
Stars: ✭ 13 (-67.5%)
Mutual labels:  messaging, p2p
Node Webdollar
WebDollar Protocol - Currency of the Internet
Stars: ✭ 89 (+122.5%)
Mutual labels:  p2p, protocol
Catapult Server
Catapult server
Stars: ✭ 111 (+177.5%)
Mutual labels:  p2p, protocol
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (+592.5%)
Mutual labels:  messaging, p2p
Fluence
Peer-to-peer computing protocol and licensing system
Stars: ✭ 453 (+1032.5%)
Mutual labels:  p2p, protocol

This repository contains the specs for vac, a modular peer-to-peer messaging stack, with a focus on secure messaging. A detailed explanation of the vac and its design goals can be found here.

Status

The entire vac protocol is under active development, each specification has its own status which is reflected through the version number at the top of every document. We use semver to version these specifications.

Protocols

These protocols define various components of the vac stack.

Waku

Waku is a protocol that replaces Whisper (EIP-627). Waku v2 is an upgrade of Waku v1 that is in active development and offer significant improvements. You can read more about the plan for it and an update.

Version 2

Version 0 and 1

  • waku/0 specs for waku/0 version, now deprecated
  • waku/1 specs for waku/1 version, current stable version
  • envelope data format waku envelope data field specification.
  • mailserver - Mailserver specification for archiving and delivering historical waku envelopes on demand.
  • rpc api - Waku RPC API for Waku v1 nodes.

Data sync

  • mvds - Data Synchronization protocol for unreliable transports.
  • remote log - Remote replication of local logs.
  • mvds metadata - Metadata field for MVDS messages.

Style guide

Sequence diagrams are generated using Mscgen like this: mscgen -T png -i input.msc -o output.png. Both the source and generated image should be in source control. For ease of readability, the generated image is embedded inside the main spec document.

Alternatively, mscgenjs can be used to generate sequence diagrams (mscgenjs produces better quality figures especially concerning lines' spaces and figures' margins). Once installed, the following command can be used to generate the sequence diagrams mscgenjs -T png -i input.msc -o output.png. More details on the installation and compilation are given in mscgenjs repository. You may try the online playground https://mscgen.js.org/ as well to get a sense of the output figures.

The lifecycle of the specs follows the COSS Lifecycle

Meta

The keywords “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

Linting

Spellcheck

To run the spellchecker locally, you must install pyspelling.

It can then be run with the following command:

pyspelling -c .pyspelling.yml

Words that should be ignored or are unrecognized must be added to the wordlist.

Markdown Verification

We use remark to verify our markdown. You can easily run this tool simply by using our npm package:

npm install
npm run lint

Textlint

We use textlint for extra markdown verification. You can easily run this tool simply by using our npm package:

npm install
npm run textlint
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].