Hand work to another seat#
Sign what you hand over#
$ head -c 32 /dev/urandom > ~/.config/deedar/host.key && chmod 600 ~/.config/deedar/host.key
$ export DEEDAR_HOST_SIGNING_KEY=~/.config/deedar/host.key
$ ljos doctor --all | grep 'host key'
ok host key /home/you/.config/deedar/host.key (32-byte seed)
handover then signs the manifest and the log head. A receiver adds
signer = ed25519:<hex> to their deed store’s layout and receive
reports (accepted). Two seats share one ticket by this walk, in
sequence: A sits and hands over, B imports and sits after A releases,
both vote, consensus, finish closes. scripts/smoke.sh runs it on
scratch stores; scripts/herd.sh is the concurrent contention check.
Receive from the same sender again#
$ ljos receive /tmp/bag --keep ~/.local/share/ljos/peer.head # the first time
...
3 deeds proven against a log of 34 entries, root 9c1e...
kept this head in /home/you/.local/share/ljos/peer.head; pass it to --since next time
$ ljos handover --out /tmp/bag2 --issue proj-1a2b --since-size 34 # the sender, next time
$ ljos receive /tmp/bag2 --since ~/.local/share/ljos/peer.head --keep ~/.local/share/ljos/peer.head
--keep writes the head of the log the bag carried. Tell the sender its
size; handover --since-size puts the bridge from that size into the
bag. --since then needs the bridge to start at the head you kept and end
at the one in the bag, so a sender who rewrote the log in between fails the
check. A bridge alone proves nothing, because the sender picks both of its
ends. This needs deedar with check --keep.