Linux release notes#
Linux 0.9.0#
Version 0.9.0 adds reusable application streams for services that need private, permissioned transport. Download the native x86_64 package from GitHub Releases. The historical 0.8.0 release notes and downloads remain below.
Changes#
- Generic application streams provide relay-only duplex transport with separately verified application identity, exact service and local socket bindings, owner/operator consent, cancellation and bounded half-close handling. Protocol 7 carries application bytes without interpreting HTTP, inference requests or model formats.
- Installed endpoints can use a remote authority through the Suite's private authority connector. The mapped ingress excludes application command sockets, signing keys and requester state.
- Application renewal preserves identity and rights through explicit owner and application consent. Reusable stream slots bound retained session metadata without resetting generations or quotas.
- Segmented committed history retains authenticated prefixes on disk with bounded segments, catch-up buffers and an explicit physical storage quota. Existing journals migrate on verified open; capacity exhaustion remains a refusal.
- Read-only authority transport can recover from a closed exchange within its original deadline. Ordinary mutations retain their exact recovery path.
Platform and validation#
The release uses native Ubuntu 24.04 x86_64 and GNU libc 2.39. Hosting requires rootless Podman, subordinate UID/GID mappings, delegated cgroup v2 controls, seccomp and Landlock ABI 6 or newer. Missing enforcement prevents activation. Native ARM, macOS, Windows and SELinux-enabled hosting remain unqualified.
Signed installation and bounded native relay/authority/application workflows were exercised with separate application hosts and a remote relay. Application integration transferred and SHA256-verified 4,079,434,577 bytes in ten files, including pause/resume, cancellation and permission revocation. This is one bounded integration workload, not a throughput or long-running soak guarantee. Four authority replicas on one machine still share that machine's failures. Independent operator separation and security certification are not established.
Upgrade scope#
Protocol 7 requires matching Core and Suite support. Upgrade the authority
committee together before creating new stream or renewal records; do not mix
incompatible record semantics within a committee. The retained
HyperNet080Authority2 package contract does not make post-0.9 state readable by
0.8. Install side by side through the accepted publisher and a fresh signed
target policy, then use the documented stopped replacement workflow. Preserve
package trust, complete journals/history, requester floors, identities and
unresolved operations. Never reset those floors or substitute the old history
format to force a downgrade. See upgrade and recovery.
Download and authenticate#
Download all five package inputs from the release: HyperNet-0.9.0-linux-x86_64.tar,
its .sig, HyperNet-0.9.0-linux-x86_64.target.json, its .sig, and Publisher.pub.
SHA256SUMS and SHA256SUMS.sig cover the downloadable artifacts.
The release also supplies HyperNet-0.9.0-system-sources.tar.xz: exact Ubuntu
source packages and patches for the libraries copied into the OCI image. Keep
this source archive and the library notices with redistributed binary packages.
Its README describes source verification and rebuilding.
Use Tools/Bundle.py and Tools/PackageTrust.py from an independently trusted
checkout of the v0.9.0 tag. Python 3.11 or newer and OpenSSH ssh-keygen with
Ed25519 SSHSIG support are required. Do not execute tools extracted from an
unverified archive. Authenticate the publisher through a separate trusted channel
before accepting this release root:
Root generation: 1
Root pin: 6529f9e574e73409ec578c9e9a66e683fef6ae885704d22d75538781b4b43b1e
The canonical public key is also recorded in PublisherKey.txt. This hexadecimal pin uses the package tool's canonical-key format, not OpenSSH's base64 fingerprint. A key and signature downloaded together cannot establish publisher identity by themselves.
From the download directory, using the trusted checkout's helper:
python3 /Trusted/HyperNet/Tools/Bundle.py KeyPin --public-key Publisher.pub
sha256sum --check SHA256SUMS
Compare the computed pin with the independently accepted pin above. Checksums alone detect corruption, not publisher identity. Verify the signed checksum file with an independently trusted public key when checking the source accompaniment:
printf 'ReleasePublisher %s\n' "$(cat Publisher.pub)" > ReleaseSigners
ssh-keygen -Y verify -f ReleaseSigners -I ReleasePublisher \
-n HyperNetRelease1 -s SHA256SUMS.sig < SHA256SUMS
Fresh installation#
Use a new private installation prefix. Initialise trust once per product; Core and Suite use separate trust directories even with the same publisher. These commands are for a fresh installation, not replacement of existing trust.
install -d -m 0700 "$HOME/.local/share/HyperNet" "$HOME/.local/opt"
python3 /Trusted/HyperNet/Tools/Bundle.py TrustInit \
--trust-directory "$HOME/.local/share/HyperNet/PackageTrust" \
--public-key Publisher.pub \
--root-pin 6529f9e574e73409ec578c9e9a66e683fef6ae885704d22d75538781b4b43b1e \
--root-generation 1 --version-floor 0.9.0 --state-contract HyperNet080Authority2
python3 /Trusted/HyperNet/Tools/Bundle.py Install \
--archive HyperNet-0.9.0-linux-x86_64.tar \
--signature HyperNet-0.9.0-linux-x86_64.tar.sig --public-key Publisher.pub \
--trust-directory "$HOME/.local/share/HyperNet/PackageTrust" \
--policy HyperNet-0.9.0-linux-x86_64.target.json \
--policy-signature HyperNet-0.9.0-linux-x86_64.target.json.sig \
--prefix "$HOME/.local/opt/HyperNet-0.9.0"
python3 /Trusted/HyperNet/Tools/Bundle.py VerifyInstalled \
--prefix "$HOME/.local/opt/HyperNet-0.9.0" --public-key Publisher.pub
"$HOME/.local/opt/HyperNet-0.9.0/Bin/HyperNet" --help
The signed target has a finite validity interval recorded in its notBefore and
expires fields. An expired target needs a newly authorised policy; do not bypass
expiry or reset retained trust. Installation starts no network services and
creates no membership. Keep profiles, keys, consent and data outside the prefix.
Existing installations#
The generation-1, sequence-3 target supports fresh release trust and existing trust for this publisher with a lower retained sequence. It cannot migrate an existing installation from a different publisher: root rotation must increase the retained generation, and a migration target must match that new generation and exceed the retained sequence. Existing development installations need a separately authorised compatible migration target from the accepted publisher.
Preserve profiles, journals, backups, retained floors and original package trust. Do not reset trust or create a replacement trust directory to bypass those floors. Earlier packages are not automatically upgraded or activated. Follow upgrade and recovery for independent root authentication, state compatibility, migration targets and side-by-side installation.
Linux 0.8.0 (published)#
HyperNet 0.8.0 is the first public Linux release. Download the native x86_64 package from GitHub Releases.
HyperNet provides four-replica Byzantine authority, consented rootless hosting, relay-only reader routes, durable content archives and replicated administration. It serves reviewed Pages, encrypted Mail and Transfers, scoped search and separately consented OpenSSH services. Federation shares approved publications between independently accepted network identities.
Platform and release scope#
The packaged profile is native Ubuntu 24.04 x86_64 with GNU libc 2.39 or newer.
Other Linux distributions need the exact ELF loader and libraries recorded in
Manifest.json; they are not separately qualified by this release. Native ARM,
macOS and Windows are not qualified. SELinux-enabled hosting remains unqualified.
Hosting additionally requires rootless Podman, subordinate UID/GID mappings,
delegated cgroup v2 CPU/memory/PID controls, seccomp and Landlock ABI 6 or newer.
Ubuntu 24.04 alone does not guarantee those kernel controls. Missing enforcement
prevents activation. Four replicas on one machine share that machine's failures.
The release includes requester/recipient clock refresh corrections across durable writes and profile-lock ownership fixes. Existing proof deadlines, pending requests and completed effects remain enforced. Source regressions and signed installation checks cover this release. Earlier installed network, recovery, Mail, Transfer and graphical checks remain relevant to the unchanged runtime implementation; they do not become measurements of a different executable.
This release has no independent security certification. Saturation, long-running soak tests, full screen-reader use and independent operator/failure-domain qualification are outside the measured scope. Large file downloads remain slow: a prior 1 MiB relay download took 12.246 seconds. Native administration is not included; use the documented CLI. Read the security and platform guides before planning an exposed deployment.
Download and authenticate#
Download all five package inputs from the release: HyperNet-0.8.0-linux-x86_64.tar,
its .sig, HyperNet-0.8.0-linux-x86_64.target.json, its .sig, and Publisher.pub.
SHA256SUMS and SHA256SUMS.sig cover the downloadable artifacts.
The release also supplies HyperNet-0.8.0-system-sources.tar.xz: exact Ubuntu
source packages and patches for the libraries copied into the OCI image. Keep
this source archive and the library notices with redistributed binary packages.
Its README describes source verification and rebuilding.
Use Tools/Bundle.py and Tools/PackageTrust.py from an independently trusted
checkout of the v0.8.0 tag. Python 3.11 or newer and OpenSSH ssh-keygen with
Ed25519 SSHSIG support are required. Do not execute tools extracted from an
unverified archive. Authenticate the publisher through a separate trusted channel
before accepting this release root:
Root generation: 1
Root pin: 6529f9e574e73409ec578c9e9a66e683fef6ae885704d22d75538781b4b43b1e
The canonical public key is also recorded in PublisherKey.txt. This hexadecimal pin uses the package tool's canonical-key format, not OpenSSH's base64 fingerprint. A key and signature downloaded together cannot establish publisher identity by themselves.
From the download directory, using the trusted checkout's helper:
python3 /Trusted/HyperNet/Tools/Bundle.py KeyPin --public-key Publisher.pub
sha256sum --check SHA256SUMS
Compare the computed pin with the independently accepted pin above. Checksums alone detect corruption, not publisher identity. Verify the signed checksum file with an independently trusted public key when checking the source accompaniment:
printf 'ReleasePublisher %s\n' "$(cat Publisher.pub)" > ReleaseSigners
ssh-keygen -Y verify -f ReleaseSigners -I ReleasePublisher \
-n HyperNetRelease1 -s SHA256SUMS.sig < SHA256SUMS
Fresh installation#
Use a new private installation prefix. Initialise trust once per product; Core and Suite use separate trust directories even with the same publisher. These commands are for a fresh installation, not replacement of existing trust.
install -d -m 0700 "$HOME/.local/share/HyperNet" "$HOME/.local/opt"
python3 /Trusted/HyperNet/Tools/Bundle.py TrustInit \
--trust-directory "$HOME/.local/share/HyperNet/PackageTrust" \
--public-key Publisher.pub \
--root-pin 6529f9e574e73409ec578c9e9a66e683fef6ae885704d22d75538781b4b43b1e \
--root-generation 1 --version-floor 0.8.0 --state-contract HyperNet080Authority2
python3 /Trusted/HyperNet/Tools/Bundle.py Install \
--archive HyperNet-0.8.0-linux-x86_64.tar \
--signature HyperNet-0.8.0-linux-x86_64.tar.sig --public-key Publisher.pub \
--trust-directory "$HOME/.local/share/HyperNet/PackageTrust" \
--policy HyperNet-0.8.0-linux-x86_64.target.json \
--policy-signature HyperNet-0.8.0-linux-x86_64.target.json.sig \
--prefix "$HOME/.local/opt/HyperNet-0.8.0"
python3 /Trusted/HyperNet/Tools/Bundle.py VerifyInstalled \
--prefix "$HOME/.local/opt/HyperNet-0.8.0" --public-key Publisher.pub
"$HOME/.local/opt/HyperNet-0.8.0/Bin/HyperNet" --help
The signed target has a finite validity interval recorded in its notBefore and
expires fields. An expired target needs a newly authorised policy; do not bypass
expiry or reset retained trust. Installation starts no network services and
creates no membership. Keep profiles, keys, consent and data outside the prefix.
Existing installations#
The published generation-1 target is for fresh release trust. It cannot migrate an existing installation from a different publisher: root rotation must increase the retained generation, and a migration target must match that new generation and exceed the retained sequence. Existing development installations need a separately authorised compatible migration target from the accepted publisher.
Preserve profiles, journals, backups, retained floors and original package trust. Do not reset trust or create a replacement trust directory to bypass those floors. Earlier packages are not automatically upgraded or activated. Follow upgrade and recovery for independent root authentication, state compatibility, migration targets and side-by-side installation.