Skip to content

A scalable and fault-tolerant Oblivious RAM (ORAM) data store

License

Notifications You must be signed in to change notification settings

dsg-uwaterloo/treebeard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oblishard

A scalable and fault-tolerant Oblivious RAM (ORAM) data store

The Readme is out of date. Don't use the instructions here! I will fix it soon.

Table of Contents

  1. Protocol Buffers
  2. Running the Project
    1. Running the Router
    2. Running the Shardnode
    3. Running the ORAM Node
    4. Running the Jaeger Backend
    5. Running Redis
    6. Sending Requests
  3. Example Execution
  4. Configurations

Protocol Buffers

The following parts are generated, but if you want to generate them again yourself, you can run the provided script:

./scripts/generate_protos.sh

Running the Project

Running the Router

To run the router, use the following command:

go run -race . -routerid <routerid> -port <rpc port>

Running the Shardnode

To run a shardnode, use the following command:

go run -race . -shardnodeid <id> -rpcport <rpcport> -replicaid <replicaid> -raftport <raftport>

You can provide a -joinaddr for the followers to join the leader.

Running the ORAM Node

To run an ORAM node, use the following command:

go run -race . -oramnodeid <id> -rpcport <rpcport> -replicaid <replicaid> -raftport <raftport>

You can provide a -joinaddr for the followers to join the leader.

Running the Jaeger Backend

To run the Jaeger backend, use Docker Compose:

docker compose up

Running Redis

Ensure that Redis is up and running on the default port.

Sending Requests

To send requests, run the following command in the cmd/client directory:

go run -race .

It will send the requests that are in the traces/simple.trace file.

Example Execution

Run each of the commands in a new terminal:

go run -race . -routerid 0 -port 8745 #cmd/router directory
go run -race . -shardnodeid 0 -rpcport 8748 -replicaid 0 -raftport 3124 #cmd/shardnode directory
go run -race . -shardnodeid 0 -rpcport 8749 -replicaid 1 -raftport 3125 -joinaddr=127.0.0.1:8748 #cmd/shardnode directory
go run -race . -shardnodeid 0 -rpcport 8750 -replicaid 2 -raftport 3126 -joinaddr=127.0.0.1:8748 #cmd/shardnode directory
go run -race . -oramnodeid 0 -rpcport 8751 -replicaid 0 -raftport 1415 #cmd/oramnode directory
go run -race . -oramnodeid 0 -rpcport 8752 -replicaid 1 -raftport 1416 -joinaddr=127.0.0.1:8751 #cmd/oramnode directory
go run -race . -oramnodeid 0 -rpcport 8753 -replicaid 2 -raftport 1417 -joinaddr=127.0.0.1:8751 #cmd/oramnode directory
docker compose up #jaeger directory
go run -race . #client directory

Configurations

The configurations can be found in the configs directory.
There are files for endpoint configs, as well as one file for the parameters.

About

A scalable and fault-tolerant Oblivious RAM (ORAM) data store

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published