FurcateOS
Update channel

This is for machines.

A Furcate node points furcate update here, reads a manifest, and merges the image only if the digest it fetched matches the digest the manifest declared. Nothing is installed on the strength of the channel being reachable.

01ContractWhat a machine fetches.

Two files, and a digest that decides.

What the client does
$ curl -fsS https://updates.furcate.org/furcate/manifest version=1.0.43-d0ca3b8 sha256=96fa45ac134a59545180b6c236c1dd54c6814612191266b54b6a6e0a853ea472 # then, only if that version differs from the installed one: $ curl -fsS -o staged.raw \ https://updates.furcate.org/furcate/furcate-1.0.43-d0ca3b8.raw # the image is merged only if its sha256 matches the manifest. # if it does not, the machine is left exactly as it was.
Not signed yet

Integrity here rests on the digest in the manifest and the TLS connection that served it. Release signing is not in place, so this channel is not yet tamper-evident independently of the transport.