/esys

The Entropy decentralized storage system.

Primary LanguageJupyter Notebook

Reproduce Evaluation of Real-world Deployment

On evaluation AWS account, enable evaluated regions and add a key pair called "Ephemeral"
* ap-east-1 (Hong Kong)
* ap-southeast-1 (Singapore)
* us-west-1 (North California)
* eu-central-1 (Frankfurt)
* sa-east-1 (Sao Paulo)
* af-south-1 (Cape Town)

Prepare control node
* Run Ubuntu 22.04 (because artifact will be compiled on control node and send to cluster nodes)
    * As user "ubuntu"
* Install Rust toolchain, C++ toolchain, CMake, Protocol Buffers toolchain, Terraform, Ansible, Jupyter Notebook, Seaborn
* Set up AWS credential properly, so it has EC2 and VPC permissions
* Add this section to SSH config
```
Host *.compute.amazonaws.com
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile [path to "Ephemeral" key pair's PEM file]
```

Start evaluation
```
$ git submodule init
$ terraform -chdir=crates/esys_entropy/terraform init
$ terraform -chdir=crates/esys_entropy/terraform apply
$ ansible-playbook -i crates/esys_entropy/terraform/inventory.ini crates/esys_entropy/playbooks/setup.yml
```

[Work in progress: pipe output CSV data into plot script]

Clean up
```
$ ansible-playbook -i crates/esys_entropy/terraform/inventory.ini crates/esys_entropy/playbooks/shutdown.yml  # optional
$ terraform -chdir=crates/esys_entropy/terraform destroy
```


Reproduce Evaluation of Simulation

Uncomment the desired evaluation setup in `crates/esys_simulate/src/main.rs` then run
```
$ terraform -chdir=crates/esys_simulate/terraform init
$ terraform -chdir=crates/esys_simulate/terraform apply
$ ansible-playbook -i crates/esys_simulate/terraform/invertory.ini crates/esys_simulate/playbook.yml \
    -e prefix=<evaluation name>
```

Plot the results with `notebooks/<evaluation name>.ipynb`.

Clean up
```
$ terraform -chdir=crates/esys_simulate/terraform destroy
```