/hypfs

Decentralized keywords Search Engine based on a hypercube structure and integrated with IPFS

Primary LanguagePythonApache License 2.0Apache-2.0

HYPFS

This project was carried out for an assignment of Blockchain and Cryptocurrencies course at the University of Bologna.

The proposal provides the implementation of a Decentralized keywords Search Engine based on a hypercube structure and integrated with IPFS using Python.

Folders and Executables

  • src: contains all the scripts of the hypercube and node implementation.
  • results: contains the results of tests carried out with the bench.py script.
  • objects: contains the objects downloaded from IPFS.
  • test_files: used for generating random files.

  • menu.py: script that provides a user-friendly command line UI.
  • start_daemons.py: script useful for starting two IPFS processes.
  • start_servers.py: script useful for starting 2^HYPERCUBE_SIZE servers processes, and the hop_counter.
  • bench.py: script used for testing.

Dependencies

It is also possible (and suggested) to use the virtual environment provided in the main directory. Apparently in the ipfshttpclient/client/__ init__.py there was a bug about versioning, therefore, the lines 64 and 65 have been commented out.

src/config.py

  • HYPERCUBE_SIZE: defines the hypercube data structure dimension, i.e. the number of network's nodes.
  • SUPERSET_THRESHOLD: limits the number of objects returned by superset search.

Usage

python start_daemons.py
python start_servers.py
python menu.py /ip4/127.0.0.1/tcp/5001 1

References

The project is inspired by

License

Apache License 2.0