Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 1.53 KB

README.md

File metadata and controls

42 lines (31 loc) · 1.53 KB

Local setup

Install Rust, jq, Python (with pip and virtualenv), clang, llvm, cmake and protoc. On an Ubuntu machine you can just run sudo make install-deps-ubuntu to install all dependencies.

To build, just run make.

To run a setup, you need to have a nodelist.txt with a tab separated value of node names and IP addresses as follows:

clientpool_vm0  10.2.7.5
clientpool_vm1  10.2.7.4
nodepool_vm0    10.2.6.7
nodepool_vm1    10.2.6.4
nodepool_vm2    10.2.6.5
nodepool_vm3    10.2.6.6

Machines whose name starts with client will be used as client machines and nodes whose name starts with node will be used a consensus nodes. These IP addresses NEED NOT be unique. If you want to reuse a machine to simulate more number of nodes (or want to perform local testing), feel free to copy the IP addresses of existing machines (or use 127.0.0.1) and use a new name.

To be compliant with the terraform script that I generally use to create test VMs, you need to have an user called pftadmin in each of these VMs. Further, one must be able to SSH into pftadmin@ip using a common SSH key. Generate and save this key as cluster_key.pem.

Save the nodelist.txt and cluster_key.pem and copy the path onto scripts/run_all_protocols.sh.

Now you can an experiment with all protocols using:

virtualenv scripts/venv
source scripts/venv/bin/activate
pip install -r scripts/requirements.txt

sh scripts/run_all_protocols.sh

Current status

Performance of Pirateship wrt other protocols; Non-TEE and LAN setup