Skip to content

Aqua-Dream/Jodes

Repository files navigation

Jodes: Efficient Oblivious Join in the Distributed Setting

See full version at Jodes_full.pdf.

Building

See BUILDING.md

Configuration

Edit config/config.ini to configure:

  • real_distributed: if false, then simulate the distribution mode in a single machine with single process; otherwise, both data and code should be deployed to a coordinator and several workers.
  • log_level: the log level.
  • num_partitions: the number of partitions (workers).
  • sigma: security parameter.
  • worker_urls: the url of workers (not used if real_distributed=false).

Note that only the coordinator needs configuration. If real_distributed=true, you should run the workers and wait for the enclaves initialization before starting the coordinator. For example, the coordinator configures

real_distributed = false
log_level = WARN
num_partitions =  4
sigma = 40
worker_urls = http://10.10.10.10:10101/
worker_urls = http://10.10.10.11:10101/
worker_urls = http://10.10.10.12:10101/
worker_urls = http://10.10.10.13:10101/

Each of the four workers (with ip 10.10.10.1x) runs

[root@xxxxxxxxx build]# ./App/worker --http_port=10101
INFO  /root/Jodes/App/worker.cpp:63: http_port is 10101
INFO  /root/Jodes/App/App.cpp:84: OCALL PRINT: Hello World!
INFO  /root/Jodes/App/worker.cpp:96: enclave initialization succeed

After enclaves initialization, coordinator can run either test or benchmark.

Testing

See TESTING.md.

Benchmark

Test data in the paper can be download here: com-DBLP, email-EuAll, com-Youtube, wiki-topcats.

Make sure to clean and split the data to the same format as in test data.

Despite config.ini, you also need to configure config/benchmark.ini. Then run the following command for benchmark:

cd build
./App/benchmark --config [config_file_path] --task [benchmark_file_path]

Here config_file_path and benchmark_file_path are optional.

Remark

If you encounter the following error:

./App/test: error while loading shared libraries: libsgx_urts_sim.so: cannot open shared object file: No such file or directory

Try:

echo "$SGX_SDK/lib64" | sudo tee /etc/ld.so.conf.d/sgx.conf
sudo ldconfig

For benchmark with large size, you may need to increase the enclave heap size by editing Enclave/config/Enclave.config.xml and change line <HeapMaxSize>0x10000000</HeapMaxSize> to a large enough value. Note that larger size results in longer initialization time. Then remember to rebuild the project before rerunning the benchmark:

cd build
make -j 8
./App/benchmark

LICENSE

See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published