daduz11 / hypfs

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

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

License:Apache License 2.0


Languages

Language:Python 99.0%Language:C 0.8%Language:JavaScript 0.1%Language:C++ 0.1%Language:Jupyter Notebook 0.0%Language:CSS 0.0%Language:Fortran 0.0%Language:Roff 0.0%Language:HTML 0.0%Language:Smarty 0.0%Language:PowerShell 0.0%Language:Batchfile 0.0%Language:Shell 0.0%