#!/usr/bin/env bash set -euo pipefail [[ $# -eq 2 ]] || { echo "usage: clear-jd-native-probe-proof.sh " >&2 exit 64 } [[ ${EUID} -eq 0 ]] || exit 77 world_root=$(readlink -f "$1") recovery_root=$(readlink -f "$2") grep -q '^node_id: JD-FD-PRIMARY$' "${world_root}/CURRENT.hldp" grep -q '^status: FAIL_0$' "${recovery_root}/RETURN-RECEIPT.hldp" grep -q '^ proof_lba: 134$' "${recovery_root}/RETURN-RECEIPT.hldp" /guanghu/bin/ghctl authorize "${world_root}" \ write_bootloader_and_system_partitions >/dev/null proof=${recovery_root}/lba134.native-proof.bin expected_sha=$(awk '/^ proof_sha256:/ {print $2}' \ "${recovery_root}/RETURN-RECEIPT.hldp") [[ ${expected_sha} =~ ^[0-9a-f]{64}$ ]] [[ $(sha256sum "${proof}" | awk '{print $1}') == "${expected_sha}" ]] [[ $(dd if=/dev/vda bs=512 skip=134 count=1 status=none | sha256sum | awk '{print $1}') == "${expected_sha}" ]] dd if=/dev/zero of=/dev/vda bs=512 seek=134 count=1 conv=notrunc,fsync \ status=none zero_sha=$(head -c 512 /dev/zero | sha256sum | awk '{print $1}') readback_sha=$(dd if=/dev/vda bs=512 skip=134 count=1 status=none | sha256sum | awk '{print $1}') [[ ${readback_sha} == "${zero_sha}" ]] observed_at=$(date --iso-8601=seconds) cat >"${recovery_root}/PROOF-CLEAR-RECEIPT.hldp" <