nix_actor/NOTES.md

964 B

Socket protocol

The socket protocol is a stream of words where each word is 8 bytes.

Handshake

  • client sends WORKER_MAGIC_1 - 0x000000006e697863
  • server sends WORKER_MAGIC_2 - 0x000000006478696f
  • client sends version number 0x0000:MAJOR:MINOR where MAJOR and MINOR are each one byte
  • server sends version number 0x0000:MAJOR:MINOR
  • if client minor version is greater than 14
    • send obsolete CPU affinity value
  • if client minor version is greater than 11
    • send obsolete reserveSpace value
  • if minor version is greater than 33
    • send version string (MAJOR.MINOR.PATCH)
  • server sends any pending error messages followed by STDERR_LAST - 0x616c7473

https://alternativebit.fr/posts/nixos/future-of-nix-substitution/ https://lists.gnu.org/archive/html/guix-devel/2020-12/msg00258.html https://discourse.nixos.org/t/nix-casync-a-more-efficient-way-to-store-and-substitute-nix-store-paths/16539/4?u=flokli https://github.com/NixOS/nix/issues/8306