avadapal před 1 rokem
rodič
revize
ff909107f1
1 změnil soubory, kde provedl 23 přidání a 9 odebrání
  1. 23 9
      README.md

+ 23 - 9
README.md

@@ -2,20 +2,21 @@ CONTENTS OF THIS FILE
 ---------------------
 
  * Introduction
- * Setting up the docker
+ * Setting up the docker and running the experimental scripts
  * Running the code
+ * Important Warning
 
 
 INTRODUCTION
 ------------
  `/preprocessing` holds code for the 3-Party preprocessing phase
  `/2p-preprocessing` holds the OT-based code 2-Party preprocessing phase
- `/duoram-online` holds the code for online phase of the 3-Party Duoram and 2-Party reads
+ `/duoram-online` holds the code for online phase of the 3-Party Duoram and 2-Party writes. For 2-Party writes, switch off the `-ThreeParty` flag in the Makefile
  `/cpir-read`  includes the code CPIR-based reads
 
 
-Setting up the docker
-------------
+Setting up the docker and running the experimental scripts
+----------------------------------------------------------
 -   `sh build-docker.sh` builds the docker image
 -   `sh run-docker.sh` launches three docker containers for parties P2, P0, and P1
 -   `sh set-networking.sh` sets up the latencies and bandwidth constraints among the three docker containers launched; pass arguments of latency and bandwidth 
@@ -29,25 +30,38 @@ Setting up the docker
 -   `sh cleanup.sh` stops the three dockers.
 
 Running the code
--------------
+-----------------
 
-    1.  Prepreprocessing:
+    1.  3-Party Prepreprocessing:
         Let ip0, ip1, and ip2 be the IP addresses of the three docker containers. Consider a database of size `2^N`. Suppose the goal is to generate `r` DPFs.
         The pre-processing generates DPFs with leaves of 128 bits. We use the first 64-bits for the writes. The remaining 64-bits are used for share conversion (XOR shared-flag vectors to additive shares)
-        1.1 `cd duoram/preprocessing`
+        1.1 `cd duoram/preprocessing & make`
         1.2 `./p2preprocessing ip1 ip0 N r`
         1.3 `./preprocessing1  ip2 ip0 N r`
         1.4 `./preprocessing0  ip2 ip1 N r`
         
         This writes the evaluations of DPFs into a file which we use in the online phase.
 
-    2.  Online Phase:
+    2.  3-Party Online Phase:
          Let ip0, ip1, and ip2 be the IP addresses of the three docker containers. Consider a database of size `2^N`.  
-         2.1 `cd duoram/duoram-online`
+         2.1 `cd duoram/duoram-online & make`
          2.2 `./p2      ip1 ip0 N W D I A` 
          2.3 `./duoram1 ip0 ip2 N W D I A`
          2.4 `./duoram0 ip1 ip2 N W D I A`
 
+    3. 2-Party Preprocessing:
+        Let ip0 and ip1 be the IP addresses of the two docker containers. To generate `W` blinding factors:
+        3.1 `cd duoram/2p-preprocessing & make`
+        3.2 `./OT ip0 ip1 1 128*W
+        3.3 `./OT ip0 ip1 1 128*W
+        3.4 `./preprocessing1  ip0 N r`
+        3.5 `./preprocessing0  ip1 N r`
+    
+    4. 2-Party Read:
+        4.1 `cd duoram/cpir-read/cxx & make`
+        4.2 ./spir_test1 ip0 N threads npreproc queries 
+        4.3 ./spir_test0 ip1 N threads npreproc queries 
+
  Important Warning
  --------------------
 This software is for performance testing ONLY! The purpose of this software is to evaluate the performance of the system, NOT to be used in a deployment scenario.