Skip to content

Releases: FranciscoKloganB/hive-p2p

hives: improved

31 Aug 19:30
bafaae2
Compare
Choose a tag to compare

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

03 Aug 10:42
4efda80
Compare
Choose a tag to compare

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.

  1. Download and install Python 3.7.7

    https://www.python.org/downloads/release/python-377/

  2. Download our repository

  3. Create a virtual environment of your choosing.

    https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/

  4. 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

01 Mar 23:22
d8e9444
Compare
Choose a tag to compare
Merge pull request #38 from FranciscoKloganB/finding-where-files-are-…

…lost

Ready for release

pre-acc architecture

04 Feb 16:36
Compare
Choose a tag to compare
1.3.0

Update article.tex

simulation file generation

24 Oct 00:56
f7ae344
Compare
Choose a tag to compare

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

20 Oct 19:20
515fd0e
Compare
Choose a tag to compare

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

09 Oct 22:12
00696a0
Compare
Choose a tag to compare

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

19 Sep 13:59
Compare
Choose a tag to compare

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