Skip to content

best-peer 0.0.31

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:19
· 25 commits to main since this release

best-peer 0.0.31

Each job runs on a disk of its own with a hard size, made and removed by best-peer-disk, a small socket-activated root helper, so the peer itself never needs root or the right to mount.

Commits since v0.0.30

  • Review: release opens out with openat and the device check, as the walk opens every directory below it, since the helper's unit answers openat2 ENOSYS (b53e1ac)
  • Review: a disk the peer mounts itself, and a job's inputs and outputs, fail in words that name nothing of the host (4ce8521)
  • Review: what the disk helper says of the host goes to the peer's log, and an order is told a fixed sentence, so no host path reaches the renter (2289e2f)
  • Review: the disks' directory and each disk's root are closed to every user but root and the peer, so no one else on the host reads a job's inputs or plants its outputs (cd85779)
  • Review: the loop device behind a peer's own mount is found by the mounted path's device number, so a data folder reached through a link still gets its disks (e3f8bcf)
  • Review: a disk's loop device passes no discard on, so a host's fstrim never gives the room reserved for it back (7d87066)
  • Review: a disk's image is formatted without discard so its room stays reserved, and list refuses a field it does not take (32d6c8e)
  • Review: the disk's total_bytes is described as the largest disk one job may be given here, in the schema, the metric's help and the README (1446ed7)
  • Review: a member tells the largest disk it makes as its disk's size, and a cloud places a disk only on a member that makes one that large (9dfef8f)
  • Review: each disk is counted once, by the helper's own rule, and the bound on one disk holds each order at ingest, never the room for all (37b748a)
  • Review: a disk promised and not yet made counts against the helper's most disks, so the second of two orders admitted at once waits rather than fails at make (6ac6a12)
  • Review: the helper lists its bounds and the peer holds its room to them, a failed release is tested, serve is tested over a socket pair, and no client is named (1512be7)
  • A release carries best-peer-disk and its two units in the Linux archive, so a node pins the helper with the peer (79700bb)
  • BEST_PEER_DISK_HELPER names the disk helper's socket, and the helper ships with its two units and the README's install, so a hardened peer runs jobs with disks (af7d0f2)
  • The Docker runtime makes, releases and removes a job's disk through the disk helper when it is given one, so a peer that may not mount still gives each job a disk of its own (775022e)
  • A job's disk is laid out by the runtime that makes it and released to the peer before its outputs are packed, so a peer that does not own what the job wrote still reads it (da2ec59)
  • A best-peer-disk helper makes, releases and removes a job's disk for a peer that may not mount, since a peer hardened as a service can never mount one dockerd sees (2291ed3)

Run it

One binary, and on Linux the disk helper best-peer-disk with its two systemd units beside it, for a peer run as a user of its own (the README's "Run as a service with the disk helper"). Download the archive for the machine, check it against SHA256SUMS, unpack it and run best-peer with the environment the README's Run section names; best-peer --version says best-peer 0.0.31. Each archive is here twice, byte for byte the same: under the name with the version, for pinning, and under the name without it, which releases/latest/download/<name> resolves to the newest release, as the README's commands use.

Machine Archive Same file, unversioned
Linux x86_64 (glibc 2.35 or newer) best-peer-0.0.31-x86_64-unknown-linux-gnu.tar.gz best-peer-x86_64-unknown-linux-gnu.tar.gz
Windows x86_64 best-peer-0.0.31-x86_64-pc-windows-msvc.zip best-peer-x86_64-pc-windows-msvc.zip
macOS Apple silicon best-peer-0.0.31-aarch64-apple-darwin.tar.gz best-peer-aarch64-apple-darwin.tar.gz

Every archive carries a build provenance attestation: gh attestation verify <archive> --repo behavioralstate/best-peer.