A DLT based evidence management system wherein the entire life-cycle of a specific crime/case file can be tracked with tamper-proof data. Here, any digital data that is specific to the case, will be hashed and pushed to the blockchain. Hence, reducing the risk of trust and mismanagement in the system. The parties involved are Police, Forensics, Court, Lawyers.
-
First things first, need to write the configtx.yaml and crypto-config.yaml files for the network you want to setup.
-
Make sure you to include
binfolder offabric-samplesat the same level as the root of this project. -
Once these files are written, now its time to update the template for the docker containers.
- Make the following changes to the
docker-compose-e2e-template.yamlfile.- Include the number of CA's you want with the required configuration.
- Find for
CA_PRIVATE_KEYkey, and then replace withOrgName_CA_PRIVATE_KEY(First letter caps). - Also, the name of the CA would be of the form
ca.orgname.example.comwhich needs to be changed accordingly. - Once the CA names are done, need to do the same for the peers.
- Along with these, need to edit the file
base/docker-compose.yamlfile accordingly.
- Make the following changes to the
-
Now, create the folders
crypto-configandchannel-artifactsinside the root of this project -
Once all the necessary changes are done, run the following command for generating the crypto material.
bash byfn1.sh generate <orglist>(To run this command, we need bash with 4.0+)
-
Once the above configuration is done, it's time to setup the Node SDK.
- Before we start the server, we need to write some config files so that the Node SDK will be able to interact with the Fabric without any problems.
- Firstly, create a folder
artifacts/ca-config. - Inside this folder, create
nnumber of folders with org names. (n-> number of orgs) - Inside every folder, include
fabric-ca-server-config.yamlfile with the appropriate contents. - Also, create
nnumber of files insideartifactsfolder with<orgname>.yamlfile name. (n-> number of orgs)
-
Now get the containers up by running the following command.
./restart.sh -
In the other command window, run the testAPI file which includes the steps for until invoking the chaincode.
./testAPI.sh
- Encrypt/Decrypt metadata.
- Hash file data.
- CounchDB add on.
- JWT Authentication.
- Metadata extraction using Exiftool-Vendored.
- Private data collection.
- MongoDB for storing files.
- Encrypting files stored on Mongodb.
- Adding wallets to the configuration.