This project includes the following components: - `terraform/`: a Terraform scripts to provision infrastructure - `impl/`: implementations of the [libp2p perf protocol](https://github.com/libp2p/specs/blob/master/perf/perf.md) running on top of e.g. go-libp2p, rust-libp2p or Go's std-library https stack - `runner/`: a set of scripts building and running the above implementations on the above infrastructure, reporting the results in `benchmark-results.json` Benchmark results can be visualized with https://observablehq.com/@mxinden-workspace/libp2p-performance-dashboard. Co-authored-by: Marco Munizaga <git@marcopolo.io> Co-authored-by: Marten Seemann <martenseemann@gmail.com> Co-authored-by: Piotr Galar <piotr.galar@gmail.com>
Configs
The terraform configs defined in this directory are used to provision the infrastructure for the libp2p perf tests.
The configs are named after the type of backend they use. The defaults for what parts of infrastructure they provision differ between the two.
local
Terraform state in this configuration will be stored locally. The defaults are configured for a single performance benchmark run, i.e. terraform apply
will bring up short-lived infrastructure only. It will skip long-lived infrastructure like the clean-up Lambda and the instance launch template.
remote
Terraform state here will be stored remotely in an S3 bucket. terraform apply
will only bring up the long-lived infrastructure needed to run the performance benchmarks It will skip short-lived infrastructure like launching EC2 instances.