Releases: FranciscoKloganB/hive-p2p
hives: improved
This release includes several bug fixes, script improvements and enhancements, better and more consistent docstrings and sphinx html autodocs.
hives: a swarm guidance simulator for p2p networks
Hives
Hives a quick to edit and setup simulator is written in Python 3.7, which offers it's users a way of testing the performance of Swarm Guidance Algorithms and Markov Matrix related optimizations in a distributed backup system scenario based on P2P networks.
New Features!
-
Generate a simulation file using simfile_generator.py script.
Long option Short option Argument Type Description --file -f str Creates a simulation file with specified name. -
Run one or multiple simulations using hive_simulation.py script.
Long option Short option Argument Type Description --file -f str Executes the specified simulation file. --directory -d void Executes all simulation files available in the SIMULATION_ROOT folder. --threading -t int The number of worker threads. Each thread runs one simulation instance. --iterations -i int How many times each simulation file is executed. --epochs -e int The number of discrete time steps each execution lasts. -
Configure the simulation environment by changing the variables inside globals.py file.
See more details by consulting the file's docstrings. Some variables include replication level, corruption chances, absolute tolerance for vector comparison and, others.
-
Simulations output one JSON file that can be used to post-process results at the user's will.
Tech
Installation
This project is implemented using Python 3.7.6. You are free to use any version you desire, but we do not guarantee the simulator will work under such conditions. We know that any version launched before 3.7.x will not run this project. We also recommend using an IDE such as PyCharm or equivalent for easier usage.
-
Download and install Python 3.7.7
-
Download our repository
-
Create a virtual environment of your choosing.
https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
-
Install project dependencies by opening your terminal and inserting the command:
$ pip install -r requirements.txt
Usage
A typical usage of this simulator would be the following sequence of commands (see New Features! section for flag details):
$ python simfile_generator.py --file=test01.json
$ python hive_simulator.py --file=test01.json --iters=30 --threading=4 --epochs=720
Future Releases
Future releases will focus on slightly improving the failure detection model. Instead of using perfect detection with a monitor entity, we will have perfect detection based on network node complaints. We will also have a module that prototypes HDFS to compare simulation results using the Swarm Guidance algorithms and an HDFS heartbeat model.
License
AGPL-3.0 License
acc-architecture
1.4.0 Merge pull request #38 from FranciscoKloganB/finding-where-files-are-…
pre-acc architecture
1.3.0 Update article.tex
simulation file generation
Release notes:
- Users can't now run a python script to generate an arbitrarily difficult simulation file
- Improvements were made to docstrings
- Fixed some packaging bugs
For the next release:
- Simulation fully implemented and tested
- Better folder structure regarding scripts
For future releases:
- Graphic outputs with respect to the simulation results
- LaTeX paper report draft
metropolis-hastings algorithm
Release notes:
- Metropolis-Hastings is implemented and works as intended
- Metropolis-Hastings doesn't support non-symmetric matrices or matrices with absorbent nodes
- Unit testing for Metropolis-Hastings module has been created with 12 unit tests.
- Some bug fixes
For the next release:
- Simulation file generation scripts
For future releases:
- Simulation fully implemented and tested
skeleton version
Release notes:
- Added several classes, such has util and helpers and even more domain classes
- The domain classes are very complete regarding basic behavior
- Improvementsregarding space and time consumption
- Several bug fixes, many still exist.
- Each shared file part no longers a transition matrix or desired distribution vector.
For the next release:
- Metropolis-Hastings Algorithm should be implemented
For future releases:
- Simulation file generation
drafted version
Release notes:
- SharedFileParts carry a transition matrix and desired distribution vector
- This drafted version contains only data structures
- Lacking of any real simulation implementation
- Releasing for reference, should the structures to be implemented from now on prove to be of no advantage.
For the next release:
- Further implementation of existing classes
- Possible addition of other classes
- Space and time improvements
For future releases:
- Metropolis-Hastings Algorithm should be implemented