This is a PHR storage and sharing system prototype that uses Blockchain, Searchable Symmetric Encryption and IPFS.
There are six components in this system listed as follows:
- Blockchain Node
- IPFS Node
- Key Distribution Server
- Doctor Device
- Hospital Server
- Client Device
To run the system locally on a linux system follow the steps given below:
- Install docker on your system, if not already installed.
- Copy the configuration files from
sample-configs
directories to the root of their respective component directories.
- Run the key distribution server using
python3 server.py
. - By default, it will run on
localhost:9005
.
- Replace
address->kds->ip
with the IP of your system in theconfig.yml
file of the blockchain node component. - Run the blockchain nodes using
init.sh
command and supply the required parameters. - The gateway IP should be the IP of your system.
- Give host-id as
0
and give the number of nodes as per your requirements (should be >= 4).
- Run the IPFS nodes using
init.sh
command in the component directory and supply the required parameters by following the same rules as in the case of blockchain nodes. - Also specify the
--bootstrap
option.
- Run doctor device using
python3 server.py
. - By default, it will run on
localhost:9001
.
- Run hospital server by using
python3 server.py
- By default, it will run on
localhost:9000
.
- Run client device using
python3 main.py
. - You will receive a prompt through which you can interact with the system.
Please cite the following Article if you intend to use any part of this codebase in your work.