Pepper is an anonymous broadcast and private messaging protocol based on the DC-net architecture. This repository provides a Go implementation that benchmarks communication throughput via end-to-end file transfer experiments. It supports the following protocol modes:
pepperexpressspectrumpacl
Disclaimer: research code, not for production use.
- Go 1.22 or newer.
- A populated local
V-DMPFdependency directory. The module is wired throughgo.modwithreplace vdmpf => ./V-DMPF.
Build the local DPF library before running Pepper:
cd V-DMPF
make libdpf.a
cd ..Run a small Pepper transfer test with three clients:
./scripts/run_simple_test.sh pepper 3The script creates local test data and configuration, starts ServerA and ServerB, runs the clients, and writes recovered output under data/output/.
Start the two servers in separate terminals:
go run main.go --role server --server-id A --mode pepper --config data/simple_test.jsongo run main.go --role server --server-id B --mode pepper --config data/simple_test.jsonThen run the client:
go run main.go --role client --mode pepper --config data/simple_test.json \
--serverA 127.0.0.1:18080 --serverB 127.0.0.1:18081Use --mode express, --mode spectrum, or --mode pacl with matching configuration to run other protocols.