mirror of
https://github.com/vacp2p/mvds.git
synced 2026-01-09 12:07:55 -05:00
53 lines
1.7 KiB
Markdown
53 lines
1.7 KiB
Markdown
# Minimal Viable Data Sync
|
|
|
|

|
|
[](LICENSE)
|
|
[](https://godoc.org/github.com/vacp2p/mvds)
|
|
[](https://goreportcard.com/report/github.com/vacp2p/mvds)
|
|
[](https://travis-ci.com/vacp2p/mvds)
|
|
|
|
Experimental implementation of the [minimal viable data sync protocol specification](https://specs.vac.dev/specs/mvds.html) including the [metadata format specification](https://specs.vac.dev/specs/mdf.html).
|
|
|
|
## Usage
|
|
|
|
Listening to MVDS messages is fairly simple:
|
|
|
|
```go
|
|
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](LICENSE) file for details
|