Ian Goldberg 2840ccb8b8 Be able to run the tests for each of the figures separately 5 months ago
..
README.md 6f326cb5bb Repro for Figures 7 and 8 of the PRAC paper for 3P Circuit ORAM 8 months ago
generate_raw_data_bs.sh 27ab4d66c4 Also run 2^30 sized binary search 7 months ago
generate_raw_data_bs_const_db.sh 6f326cb5bb Repro for Figures 7 and 8 of the PRAC paper for 3P Circuit ORAM 8 months ago
generate_raw_data_heap.sh c033f9fd0b Fix off-by-one error in heap extract experiments 7 months ago
generate_raw_data_heap_const_db.sh c033f9fd0b Fix off-by-one error in heap extract experiments 7 months ago
generate_raw_data_reads.sh 4715e8144b Figure 6 should go up to 2^30 7 months ago
generate_raw_data_reads_const_db.sh 9a496d6a8f Add Figure 6 as well 8 months ago
generate_raw_data_reads_ssh.sh b4a6a529a0 Support for running experiments over ssh instead of in dockers 7 months ago
parse_logs be1c5035c8 prac repro stuff 8 months ago
repro 2840ccb8b8 Be able to run the tests for each of the figures separately 5 months ago

README.md

Generating the data for 3P-Circuit ORAM for the PRAC paper

Building the docker

  • cd ../docker
  • Build the docker image with ./build-docker
  • Start the dockers with ./start-docker (This will start three dockers, each running one of the parties.)

Setting the network parameters

  • ./set-networking 30ms 100mbit

Generating raw data for the binary search experiments

  • cd ../prac
  • Run the reproduction script ./repro with one of the following arguments:

    • ./repro test: Run a short (about 30 seconds) "kick-the-tires" test. You should see output like the following:

      Running test experiment...
      Wed Nov  1 03:59:19 PM EDT 2023: Running 16 1 ...
      
      # Test output
      
      CircuitORAMOnln read 16 1 6.289 s
      CircuitORAMOnln read 16 1 355.3125 KiB
      CircuitORAMTotl read 16 1 7.145 s
      CircuitORAMTotl read 16 1 2478.5 KiB  
      
      # End test output
      

    The last four lines are the output data points, telling you that a Circuit ORAM read test on an ORAM of size 216, with a network configuration of 1us latency and 100gbit bandwidth, performing 1 read operation, took 6.289 s of online time and 7.145 s of total (precomputation plus online) time, and 355.3125 KiB of online bandwidth and 2478.5 KiB of total bandwidth. If you've run the test before, you will see means and stddevs of all of the output data points. When you run it, the time of course will depend on the particulars of your hardware, but the bandwidths used should be exactly the values quoted above.

    • ./repro all numiters: Run all of the tests, doing numiters iterations of each.

When you're done

Stop the docker:

  • ../docker/stop-docker