From ed2cd259e918344c5a21ecf884b3178b4256ea74 Mon Sep 17 00:00:00 2001 From: Otto Date: Sat, 7 Mar 2026 16:33:56 +0100 Subject: [PATCH] Test with attestation cache --- ...0d26b7af9c5d306e77fec290d360c7ac876b2e.ots | Bin 0 -> 770 bytes .ots/commit-chain.txt | 6 ++ .ots/prev-commit.txt | 2 +- .ots/proof.ots | Bin 665 -> 525 bytes backfill-proofs.sh | 55 ++++++++++++++++-- test6.txt | 1 + 6 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 .ots/810d26b7af9c5d306e77fec290d360c7ac876b2e.ots create mode 100644 test6.txt diff --git a/.ots/810d26b7af9c5d306e77fec290d360c7ac876b2e.ots b/.ots/810d26b7af9c5d306e77fec290d360c7ac876b2e.ots new file mode 100644 index 0000000000000000000000000000000000000000..43650e584e2d57939548751fa1a64b8f54c57b96 GIT binary patch literal 770 zcmZSZFG$S`$;?eHE=kNSC}v;?D9X=IW7yyM=tawmNmCd(=7_FwOg*wW>ZRD#y%*p2 zN^y4m-6FvJboGDM=M~cmIZl5N$SZeW*QU2M@p0B#<~jKleH{Nka7g8DICHT6nl#4; zf%_N2&68fO|9NBnGvz=-l~o)c6gHiSDbmb7`qr11(fRo-ZiAWA*yX&JZm4>9^zqN! z1A@^U9~CxuTyLNL{0L)SUZvT4sb@Jajy zY;Mda^e+hvg~jAH}%7^%4IhI6ksuu5q>dz%gNYZV5yAs*?=O_aF1>{p9J> z)6FO;DJZtm*H6sJOitBHDoNH$PRvQoOGzx!%LfKX2|Pgb@{7{{e-KdR(&FV(I}z|; zLa@5Ge9m^D3tf+T9G-m0ct*>)&#zaDzX?6NyMo`Sx<7NZXhzDuqYHR|E_|?=S#0y= zO3O9d_fE~<@5tt&ajZ~9_;w@zu4w_!r|x70DzQJmXu*d4E=&p*v4+eygMP7mE>X9e z6hD2Qci8Q$fQ?=dPuPCo(AQnHeA>EyO>j?WYQQ{^mYJ8AT8Z#MYDsEQUS>&Ud16kE zUUGge(EY8SCJX-mckvNhc6(M(|1ou-`{&Q-T*f{35u0n`#Mc-0D!NR)!TR>}t39eQHFVB*OA{3Iv?JC@I7@sJbtwq3vxG~(-(s~P)8f? K!2Bdau?qljT3nX^ literal 0 HcmV?d00001 diff --git a/.ots/commit-chain.txt b/.ots/commit-chain.txt index d0f9c04..a6fee65 100644 --- a/.ots/commit-chain.txt +++ b/.ots/commit-chain.txt @@ -7,3 +7,9 @@ c0685dabfb48360a3abc103b75357f94e9f054b2:46aded7b9582bbed673843e2cf8a3f8fa742ad9 4a6f5ed0c12315b0bc8a0fa5815ada1bd20e5963:db6f29e01a33d8ed8f127ff169d9f91d55e8a229 db6f29e01a33d8ed8f127ff169d9f91d55e8a229:392ee723c3cf626d0e5281aa94771d7133bb345e 392ee723c3cf626d0e5281aa94771d7133bb345e:392ee723c3cf626d0e5281aa94771d7133bb345e^1 +810d26b7af9c5d306e77fec290d360c7ac876b2e:c0685dabfb48360a3abc103b75357f94e9f054b2 +c0685dabfb48360a3abc103b75357f94e9f054b2:46aded7b9582bbed673843e2cf8a3f8fa742ad91 +46aded7b9582bbed673843e2cf8a3f8fa742ad91:4a6f5ed0c12315b0bc8a0fa5815ada1bd20e5963 +4a6f5ed0c12315b0bc8a0fa5815ada1bd20e5963:db6f29e01a33d8ed8f127ff169d9f91d55e8a229 +db6f29e01a33d8ed8f127ff169d9f91d55e8a229:392ee723c3cf626d0e5281aa94771d7133bb345e +392ee723c3cf626d0e5281aa94771d7133bb345e:392ee723c3cf626d0e5281aa94771d7133bb345e^1 diff --git a/.ots/prev-commit.txt b/.ots/prev-commit.txt index 79c74df..8b45759 100644 --- a/.ots/prev-commit.txt +++ b/.ots/prev-commit.txt @@ -1 +1 @@ -c0685dabfb48360a3abc103b75357f94e9f054b2 +810d26b7af9c5d306e77fec290d360c7ac876b2e diff --git a/.ots/proof.ots b/.ots/proof.ots index 407ebcf4ad411e90f683e09effc883532cfa2d15..fbc62a4fcd32b8daa3307d7df40e43b7e43867bf 100644 GIT binary patch delta 309 zcmbQq+RHLQvHqN+gA8ZNv~_C>D+3N1%rC!EJMXmbA-~#%8x*Wet3M`u5b)af?0-<@ z#&dbS!%?d^}io4&JxmP*vTo1j>5 zz4(E8QPuJL93KSQw?8+W|4(xIr?easz5}|c93NRS*SI=<;0XE8w&Z`yxydUg>oHm@ z+VcN(%jM$!<>z^BUN;B72Sk~}2ae{9ttHL-E%#4e%c!dlw0*NfPWFbk=RW|AZtL=? zYGpbZI?+eBt@FXcHE=z9_a#h-_ht&5xXjG$gTVg}vu>-*a{V_?!fW4wH)kAy?oJQy z*Dzo;a9W<4Tf2$>lf!qmxXZ`X9%sEh%s*Z9Lm4N;B>N8>Mw3l_!?ZkiPEKPo1^~b> BkrMy_ delta 450 zcmeBWnaMgqv3`!|8pqTlo1AI?`7GhqLhK+w-Wq z`26ahGap=Z4dtqEQr1}nG1v72$Em@N4V-%juaz;vFW(Xf+VNJ?|-FKpD6jvTwmTo_}P8IIH>VT8?l()XUJei46xBi2` zJJqO1_PPS@Yg6A|lQ!Gu1vKh!`STL({d4*4GE^kba6ezR@0P2Y(#^U3R;^+$+3KRU z16?iPKT}9JJn===f#%|l--mpA1!NEWnLQ;*Y1ZH7hUv8eKqbrU%st>!m>HC2c qz7u|bT>q729$TH*c27vZ%`oOQ$U(f|5EJ8lzp*RvTFc~HjK%;Thtui+ diff --git a/backfill-proofs.sh b/backfill-proofs.sh index 81ea0aa..a859ec4 100755 --- a/backfill-proofs.sh +++ b/backfill-proofs.sh @@ -37,6 +37,39 @@ chmod +x "$GENERATE_SCRIPT" # Ensure .ots directory exists mkdir -p .ots +# Cache file for attestation status (avoids repeated ots info calls) +STATUS_CACHE=".ots/.attestation-cache" +if [ ! -f "$STATUS_CACHE" ]; then + echo "# Attestation status cache" > "$STATUS_CACHE" + echo "# Format: commit-hash:status:timestamp" >> "$STATUS_CACHE" +fi + +# Function to check cached status +get_cached_status() { + local commit="$1" + local cache_line=$(grep "^$commit:" "$STATUS_CACHE" 2>/dev/null | tail -1) + if [ -n "$cache_line" ]; then + local status=$(echo "$cache_line" | cut -d: -f2) + local timestamp=$(echo "$cache_line" | cut -d: -f3) + local now=$(date +%s) + local age=$((now - timestamp)) + # Cache valid for 1 hour (3600 seconds) + if [ "$age" -lt 3600 ]; then + echo "$status" + return 0 + fi + fi + return 1 +} + +# Function to cache status +cache_status() { + local commit="$1" + local status="$2" + local now=$(date +%s) + echo "$commit:$status:$now" >> "$STATUS_CACHE" +} + echo "[ots-backfill] Scanning commit history..." # Get all commit hashes (oldest to newest) @@ -55,18 +88,31 @@ for COMMIT in $COMMITS; do PROOF_FILE=".ots/${COMMIT}.ots" if [ -f "$PROOF_FILE" ]; then - # Check if already fully attested - STATUS=$(ots info "$PROOF_FILE" 2>&1 | grep -c "PendingAttestation" || echo "0") + # Check cached status first + CACHED_STATUS=$(get_cached_status "$COMMIT" || echo "") - if [ "$STATUS" -eq 0 ]; then - echo " ✓ Already attested (skipping)" + if [ "$CACHED_STATUS" = "attested" ]; then + echo " ✓ Already attested (cached, skipping)" continue fi + # Check if already fully attested (only if not cached or cache expired) + PENDING_COUNT=$(ots info "$PROOF_FILE" 2>&1 | grep -c "PendingAttestation" || echo "0") + + if [ "$PENDING_COUNT" -eq 0 ]; then + echo " ✓ Already attested" + cache_status "$COMMIT" "attested" + continue + fi + + # Cache as pending + cache_status "$COMMIT" "pending" + # Try to upgrade existing proof (only contacts calendars if pending) echo " Upgrading pending proof..." if ots upgrade "$PROOF_FILE" 2>/dev/null; then echo " ✓ Upgraded to attested" + cache_status "$COMMIT" "attested" UPDATED=$((UPDATED + 1)) else echo " - Still pending (no upgrade available yet)" @@ -76,6 +122,7 @@ for COMMIT in $COMMITS; do echo " Generating new proof..." "$GENERATE_SCRIPT" "$COMMIT" "$PROOF_FILE" >/dev/null 2>&1 echo " ✓ Generated proof" + cache_status "$COMMIT" "pending" UPDATED=$((UPDATED + 1)) fi done diff --git a/test6.txt b/test6.txt new file mode 100644 index 0000000..b351a1d --- /dev/null +++ b/test6.txt @@ -0,0 +1 @@ +# Second test with cache