feat(user/bkots):Run ots separately for each calendar
authorSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sat, 30 Apr 2022 07:55:11 +0000 (07:55 +0000)
committerSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sat, 30 Apr 2022 07:55:11 +0000 (07:55 +0000)
- note: 'ots' 0.7.0 fails if any of the default calendars are
  unavailable; it may exit before trying a calendar that is
  responsive. Therefore, the best backup solution is to run 'ots'
  multiple times: each run with a different calendar specified.

user/bkots

index fa9b7da2525451a7145d59182b0097169a575b1e..dba0ef5fa04372c2a8ef536e50ad88c94deba4c4 100644 (file)
@@ -5,6 +5,12 @@ declare -Ag appRollCall # Associative array for storing app status
 declare -Ag fileRollCall # Associative array for storing file status
 declare -Ag dirRollCall # Associative array for storing dir status
 declare -ag arrayPosArgs # Associative array for processArgs() function
+declare -g ots_delay; ots_delay=1 # minimum time in seconds between ots operations
+declare -ag calendars;
+calendars+=("https://finney.calendar.eternitywall.com");
+calendars+=("https://btc.calendar.catallaxy.com");
+calendars+=("https://alice.btc.calendar.opentimestamps.org");
+calendars+=("https://bob.btc.calendar.opentimestamps.org");
 
 # Declare functions
 yell() { echo "$0: $*" >&2; } # print script path and all args to stderr
@@ -193,7 +199,7 @@ showVersion() {
     vbm "DEBUG:showVersion function called."
 
     cat <<'EOF'
-bkots 0.0.1
+bkots 0.0.3
 Copyright (C) 2022 Steven Baltakatei Sandoval
 License GPLv3: GNU GPL version 3
 This is free software; you are free to change and redistribute it.
@@ -359,8 +365,8 @@ main() {
     #             [2] How to find files containing newlines in their names https://stackoverflow.com/a/21727028
     local -a file_list file_list_pruned;
     local -a files_to_verify files_to_upgrade files_to_stamp
-    local -a files_to_verify_pruned files_to_upgrade_pruned files_to_stamp_pruned 
-
+    local -a files_to_verify_pruned files_to_upgrade_pruned files_to_stamp_pruned
+    
     # Process args
     processArgs "$@";
     
@@ -611,11 +617,14 @@ main() {
         fi;
         vbm "DEBUG:Attempting to upgrade proof file:path_prf:$path_prf";
         if [[ ! $option_dry_run == "true" ]]; then
-            ots upgrade "$path_prf";
+            #ots upgrade "$path_prf";
+            for url in "${calendars[@]}"; do
+                ots -l "$url" --no-default-whitelist upgrade "$path_prf";
+            done;
         else
             yell "DEBUG:DRY RUN:Not running:\"ots upgrade $path_prf\"";
         fi;
-        
+        sleep "$ots_delay";
     done;
 
     ## Verify files
@@ -629,11 +638,14 @@ main() {
         vbm "DEBUG:Attempting to verify source file:path_src:$path_src";
         vbm "DEBUG:    against proof file:          path_prf:$path_prf";
         if [[ ! $option_dry_run == "true" ]]; then
-            ots verify -f "$path_src" "$path_prf";
+            #ots verify -f "$path_src" "$path_prf";
+            for url in "${calendars[@]}"; do
+                ots -l "$url" --no-default-whitelist verify -f "$path_src" "$path_prf";
+            done;
         else
             yell "DEBUG:DRY RUN:Not running:\"ots verify -f $path_src $path_prf\"";
         fi;
-        
+        sleep "$ots_delay";
     done;
     
     ## Stamp files
@@ -645,11 +657,14 @@ main() {
         fi;
         vbm "DEBUG:Attempting to stamp source file:path_src:$path_src";
         if [[ ! $option_dry_run == "true" ]]; then
-            ots stamp "$item";
+            #ots stamp "$item";
+            for url in "${calendars[@]}"; do
+                ots -l "$url" --no-default-whitelist verify stamp "$item";
+            done;
         else
             yell "DEBUG:DRY RUN:Not running:\"ots stamp $item\"";
         fi;
-        
+        sleep "$ots_delay";
     done;
 
 }; # main program