Withdraw witness
Trail 2026-09-18-fra1
Experiment Nr. 1, Lauf 1 — Drain fra1-lab (Virtua FRA)
- Origin:
anycast.dev/witness/2026-09-18-fra1 - Data: entries with
witness.sourceatlas-feedare RIPE Atlas measurement results (RIPE NCC, atlas.ripe.net); all other entries come from our own hosts. - Signing key:
ed25519:48586555edeac5bb, published 2026-09-17 (vor dem Lauf) at /.well-known/logsiegel-pubkey.txt - How to check it: /.well-known/logsiegel-verify.txt (German)
- File list with sizes and SHA-256: MANIFEST.txt
Fetch and verify
BASE=https://anycast.dev/witness/2026-09-18-fra1
mkdir 2026-09-18-fra1 && cd 2026-09-18-fra1
curl -sO "$BASE/MANIFEST.txt"
curl -sO "$BASE/log.jsonl.gz"
curl -sO "$BASE/checkpoints.jsonl"
curl -sO "$BASE/origin"
mkdir -p keys anchors
curl -s -o keys/signing_key.pub "$BASE/keys/signing_key.pub"
for f in $(awk '$3 ~ /^anchors\// {print $3}' MANIFEST.txt); do
curl -s -o "$f" "$BASE/$f"
done
gunzip -k log.jsonl.gz
# what you got is what the manifest says
awk '$1 ~ /^[0-9a-f]{64}$/ {print $1" "$3}' MANIFEST.txt \
| shasum -a 256 -c # GNU: sha256sum -c
# the key comes from the published file, not from the trail
curl -s https://anycast.dev/.well-known/logsiegel-pubkey.txt -o pubkeys.txt
sed -n '/Lauf-ID: *2026-09-18-fra1$/,/END PUBLIC KEY/p' pubkeys.txt \
| sed -n '/BEGIN PUBLIC KEY/,/END PUBLIC KEY/p' > pub.pem
pip install logsiegel==0.1.2
logsiegel verify . --pubkey pub.pem
Expected: PASS: <N> entries, <M> checkpoints. The guide also shows how to break the check on purpose, so you know it measures something.
The copy of the public key inside the trail (keys/signing_key.pub) proves nothing against us — whoever controls the directory can rewrite log and key together. Take the key from the published file.
Files
| File | Bytes | SHA-256 (first 16) |
|---|---|---|
| MANIFEST.txt | 1,963 | 9d14338ca7b9943b |
| anchors/cp000525-digicert-20260917T173000Z.tsr | 6,006 | 34ba085b10b9b739 |
| anchors/cp001745-digicert-20260917T174500Z.tsr | 6,007 | 5ed1a3c9f8b203e3 |
| anchors/cp003899-digicert-20260917T180000Z.tsr | 6,007 | 8655f8986787a839 |
| anchors/cp005796-digicert-20260917T181500Z.tsr | 6,007 | e32a9e3b85b2e59a |
| anchors/cp008055-digicert-20260917T183000Z.tsr | 6,007 | 5176ffa16176cfcf |
| checkpoints.jsonl | 24,941 | 8b7de139227d6d64 |
| keys/signing_key.pub | 113 | 4d39f4d3006e3e9d |
| log.jsonl.gz | 851,668 | 6991be8df654adf7 |
| origin | 35 | 5e28b00d70dab01c |
Unpacked, log.jsonl is 6,203,078 bytes, SHA-256 6932938306c00ac704af7b4204fa88bbb30688f39ec4b53df50e370a18ad5acc. Unpacking changes nothing about the proof.
5 RFC 3161 timestamp tokens are in anchors/; each one stamps a signed checkpoint root. The certificates to check them against: digicert-root-g4.pem, digicert-chain.pem — or your own system trust store, the result must be the same.