Skip to content

Commit

Permalink
Update IRB readme
Browse files Browse the repository at this point in the history
Signed-off-by: Marcus Brandenburger <[email protected]>
  • Loading branch information
mbrandenburger committed Jan 12, 2022
1 parent 36a60d3 commit aa8b5f7
Showing 1 changed file with 41 additions and 4 deletions.
45 changes: 41 additions & 4 deletions samples/demos/irb/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,47 @@
# IRB approval sample
# Institutional Review Board (IRB) Sample

Get redis
This demo implements an FPC-based IRB experiment approval services to protect the confidentiality of data being used in analytical experiments.
Multiple participants, namely, data providers, experimenter, and principal investigators are collaborating to conduct analytical research using sensitive data.

We show a prototype of an application that performs analytical experiments on data such that:
- Any constraints on the use of the data are respected (consent).
- The confidentiality of data and policies for its use is maintained.
- Analytical experiments must be approved by an IRB which ensures that the description and implementation of the experiment are appropriate.
- Analytical experiments are executed in an SGX container (Graphene) that can attest to the integrity of the computation.

The demo was presented at the Hyperledger Global Forum (HLGF) 2021. Check the recordings on [youtube](https://www.youtube.com/watch?v=MU4BpZp8A1Y).

Note that the source code in here is a simplified version to fully focus on the FPC implementation.
In particular, the experiment is not protected with SGX.
The full source code for the HLFG21 presentation is located in the [irb-demo](https://github.com/hyperledger/fabric-private-chaincode/tree/irb-demo/samples/demos/irb) branch.

The IRB use case requires the interaction between the participants.
A typical application flow begins with the data registration and consent, following the approval protocol, and finally executing the experiment and publishing the results.
We use [Fabric Smart Client](https://github.com/hyperledger-labs/fabric-smart-client) to implement the complex interactions.

## Code structure
- `/chaincode` contains the FPC chaincode that implements the IRV approval service
- `/experimenter` contains the analytic experiment code based on [PyTorch](https://pytorch.org/).
- `/pkg` contains implementations for various components, including crypto, container management, etc.
- `/protos` contains the message definitions used in this application
- `/views` contains the protocol implementation for the data provider, experimenter, and investigator.
- `irb_test.go` is the starting point of the demo.
- `topology.go` defines the Fabric network used in this demo.

## Setup

The demo uses redis to store the data provided by the patients. Get a redis docker image.
```bash
docker pull redis:latest
```

Next, we build the components of the demo by running:
```bash
make build
```

## Run the demo

```bash
make build test
```
make test
```

0 comments on commit aa8b5f7

Please sign in to comment.