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.
- 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.
- ipfshttpclient
- networkx
- requests
- Flask
- windows-curses
- openpyxl (for testing)
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.
- 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.
python start_daemons.py
python start_servers.py
python menu.py /ip4/127.0.0.1/tcp/5001 1
The project is inspired by