Private Fly admission pilot v1
Real private-network cohort · 5 September 2026
On this page
Result
The new Rust admission pilot passed ten cases across the existing two private Fly Machines in lax, each with one shared CPU and 256 MB RAM. The source and client communicated over direct 6PN IPv6 addresses. Both Machines are stopped after the run; neither has public services. The two original HTTP-launch Machines were left unchanged and stopped; their old service configuration still exists separately.
The first round admitted two signed claims, replayed one, rejected insufficient work, committed conflict quarantine, rejected the quarantined claim and refused a wrong transport credential. Two claims plus one quarantine added 663 journal bytes. After stopping and starting the source Machine, three requests verified replay, quarantine rejection and idempotent evidence: zero additional journal bytes. The source journal remained 1,207 bytes including its header. All successful responses were authenticated and bound to the exact request payload.
Native and Linux-container smoke runs passed the same ten cases first. The existing 15-test peer transport suite, four private-framing unit tests and shared writer checks also passed. The inspected Linux pilot binary is 890,096 bytes (869.2 KiB). The runtime image defaults to UID 10001 and contains no source tree or credential. The Docker smoke uses the host's non-root UID for temporary bind-mounted files; Fly processes use UID 10001. No cloud throughput or peak-memory result is claimed.
What this service implements
skein-admission-pilot is an explicitly named fixed-corpus test binary. It accepts 210/442-byte claim envelopes and 884-byte conflict pairs, authenticates before signature preverification, validates against preloaded descriptors, and submits to the tested persistent ledger owner. Successful response follows durable completion. Ordinary refusal preserves service; uncertain storage or writer timeout stops it.
The pilot reuses the private transport nonce/HMAC-SHA256 framing with a separate SkeinNet/private-admission-pilot/v1 domain. Request and response tags bind fresh nonces, roles, and request content. The existing cohort credential authenticates group membership, not individual identity or sponsorship. Claim signatures remain independent. The framing does not encrypt payloads: Fly's trusted encrypted private underlay is required. It is not a reviewed Internet transport or TLS replacement.
One connection is serviced at a time, with one verification job and one outstanding writer operation. Handshake/request/response I/O shares a two-second deadline; the writer deadline is 200 ms. The service accepts at most the configured 1–1,000 connections and normally exits after 120 seconds. A stuck OS write can still block shutdown while joining its owner. This pilot does not carry over the concurrent socket pump, timed CPU budgets or reserved commit lanes.
Deployment and reproduction
The image was built locally, tested, inspected and pushed to registry.fly.io/skeinnet:admission-pilot-v1. The runner updated only the existing private test pair, used a fresh directory on their existing volumes, reused the provisioned private credential without reading it into results, restarted the source, and stopped both Machines in cleanup. Existing volumes and test state remain. The separate fly.admission.toml template validates without a public service.
cargo build --locked --offline --features peer-recovery --bin skein-admission-pilot
python3 scripts/test_admission_pilot.py
docker build --platform linux/amd64 -t skeinnet:admission-pilot-v1 .
python3 scripts/test_admission_pilot.py --docker skeinnet:admission-pilot-v1
python3 scripts/audit_fly_admission_pilot.py
The cloud runner scripts/run_fly_admission_pilot.py starts paid compute and requires the tested image already published. Retained raw results, offline audit and manifest are under docs/results/fly-admission-pilot-v1*. Timings in the raw report include Fly command orchestration and are not RPC latency measurements.
Remaining public-admission work
This run validates real private transport and persisted admission across a Machine restart. It uses public test keys, fixed fixture policy time 100, preloaded Beacons and a small synthetic workload. It cannot accept arbitrary real descriptors or establish production lease behavior, distributed admission fairness or scalability.
Next: a bounded descriptor/request profile with real lease clocks, then integration of concurrent authenticated ingress, aggregate CPU/handshake limits and durable retry. An independently reviewed public transport and restricted adversarial Internet pilot must precede open admission. No public admission endpoint was enabled by this run.
