mirror of
https://github.com/vacp2p/mvds.git
synced 2026-01-08 19:48:03 -05:00
748b61123fdcd09068d1aeb7adf41ad08c2b6dd6
* protobuf * do not send ack when not required * remove from state if no ack required * different send modes * fix * updated * retransmit fix * updated * fixed * renamed to ephemeral * repeated * gen * resolution * cleanup * rough dependency code * todo * removed * only stores if ephemeral * started implementing the algo * simplified * updated * we never store ephemeral messages so we did not need * adds parents * new schema * tx to insert * err * removed old * fixed * changed log * test persistence of parents * removed * rename * ignoring * Update store/messagestore_sqlite.go Co-Authored-By: Adam Babik <adam@status.im> * Update node/node.go Co-Authored-By: Adam Babik <adam@status.im> * Update node/node.go Co-Authored-By: Adam Babik <adam@status.im> * Update node/node.go Co-Authored-By: Adam Babik <adam@status.im> * more fixes * Update store/messagestore_sqlite.go Co-Authored-By: Adam Babik <adam@status.im> * more fixes * using refs * Update node/node.go Co-Authored-By: Adam Babik <adam@status.im> * finished * Update store/messagestore_sqlite.go Co-Authored-By: Adam Babik <adam@status.im> * Update 1572372377_initial_schema.down.sql * desc + refactor * started refactoring resolution * Update README.md * rewrote resolve * mutex * todo * fixes * sql impl * added test * log * updates * updated * little bug * fix * added test * first changes from @adambabik * moved * fixed test, started eventual ones * fixed eventually test * mock install * consistent test * mock * fix lint * Update dependency/tracker_sqlite.go Co-Authored-By: Adam Babik <adam@status.im> * fix
Minimal Viable Data Sync
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
Releases
22
Languages
Go
98.4%
Makefile
1.6%