vacp2p / mvds

Minimal Viable Data Sync Implementation
https://specs.vac.dev/specs/mvds.html
MIT License
13 stars 3 forks source link
briar synchronization

Minimal Viable Data Sync

Version MIT License API Reference Go Report Card Build Status

Experimental implementation of the minimal viable data sync protocol specification including the metadata format specification.

Usage

Listening to MVDS messages is fairly simple:

sub := node.Subscribe()

for {
    msg := <-sub
    print(msg)
}

Prerequisites

Ensure you have protoc (Protobuf) and Golang installed. Then run make.

Simulation

In order to run a very naive simulation, use the simulation command. The simulation is configurable using various CLI flags.

Usage of main.go:
  -communicating int
        amount of nodes sending messages (default 2)
  -interactive int
        amount of nodes to use INTERACTIVE mode, the rest will be BATCH (default 3)
  -interval int
        seconds between messages (default 5)
  -nodes int
        amount of nodes (default 3)
  -offline int
        percentage of time a node is offline (default 90)
  -sharing int
        amount of nodes each node shares with (default 2)

License

This project is licensed under the MIT License - see the LICENSE file for details