This is a prototype implementation of the PirateShip consensus protocol for VM-based TEEs (eg, AMD SEV-SNP and Intel TDX).
WARNING: Code is still under development and is not audited. DO NOT use it in production.
We use Rust features to use the same codebase to implement multiple protocols for benchmarking. Protocols currently available are:
- PirateShip
- Raft (also called
lucky_raft
) - Signed Raft
- PBFT (Linearized version)
- Jolteon
- Hotstuff
- Engraft
All protocols except PirateShip only have their steady-states implemented without leader election/view change.
PirateShip uses Rust. So cargo build
should suffice.
For convenience, we have provided a Makefile
with multiple targets for different protocols and PirateShip with different features/apps.
See Makefile
for more details.
See scripts
for instructions on how to deploy and run PirateShip experiments.
The deployment
directory is tailor-made for deploying VMs in Azure using Terraform.
However, porting to another cloud is possible: subclass the Deployment
class in scripts
to use your own deployment scripts.
Setup: 7 node LAN setup with 16 core SEV nodes with 64 GB RAM and 10 Gbps NIC capacity.