← Pepper 0.1.0

Getting started

Requirements

Pepper 0.1.0 requires Rust 1.85 or newer. Storage works on a normal development machine. Compute additionally requires Linux, /dev/kvm, Firecracker, mkfs.ext4, debugfs, a guest kernel, and an allowlisted ext4 rootfs containing /pepper-guest-agent.

Build

git clone https://github.com/peppermesh/pepper.git
cd pepper
git checkout v0.1.0
cargo build --locked --workspace --release

The resulting host binaries are target/release/pepper-agent and target/release/pepper.

Start a development node

./target/release/pepper-agent init --config ./dev/node1.toml
./target/release/pepper-agent --config ./dev/node1.toml

Keep the agent running. In another terminal, verify it and store a block:

./target/release/pepper node status
printf 'hello pepper\n' > /tmp/input.txt
./target/release/pepper --json block put /tmp/input.txt
./target/release/pepper block get '<cid-from-put>' -o /tmp/output.txt
dev/node1.toml uses relative paths and development settings. Do not use it unchanged for a system deployment.

Add a second node

Initialize and start dev/node2.toml in separate terminals. It bootstraps through node 1 and exposes its local API on port 9081.

./target/release/pepper-agent init --config ./dev/node2.toml
./target/release/pepper-agent --config ./dev/node2.toml

./target/release/pepper --api http://127.0.0.1:9080 node peers
./target/release/pepper --api http://127.0.0.1:9081 node status

Objects, directories, and retention

./target/release/pepper --json object put ./dataset.bin
./target/release/pepper object get '<object-cid>' -o ./restored.bin
./target/release/pepper --json dir put ./dataset
./target/release/pepper dir get '<directory-cid>' ./restored-directory

User-facing puts create a permanent root pin. A root pin protects every reachable chunk. Delete the pin through the node that created it before running GC:

./target/release/pepper pin delete '<root-cid>'
./target/release/pepper admin gc --dry-run
./target/release/pepper admin gc

Deployment boundaries

  • The HTTP API must remain on loopback; use an authenticated TLS proxy or VPN remotely.
  • A non-loopback P2P listener requires a cluster secret file with mode 0600 or stricter.
  • Upgrade all nodes together: protocol v4 is not compatible with older development protocol versions.
  • This release is a developer preview, not a production multi-tenant security boundary.