@@ -118,6 +118,8 @@ usage: ${progname} [-1ch] [-k KEYFILE]
118
118
-V print out the version of the Harmony binary
119
119
-B blacklist specify file containing blacklisted accounts as a newline delimited file (default: ./.hmy/blacklist.txt)
120
120
-I use statically linked Harmony binary
121
+ -M support multi-key mode (default: off)
122
+ -A enable archival node mode (default: off)
121
123
122
124
examples:
123
125
@@ -151,7 +153,7 @@ BUCKET=pub.harmony.one
151
153
OS=$( uname -s)
152
154
153
155
unset start_clean loop run_as_root blspass do_not_download download_only metrics network node_type shard_id download_harmony_db db_file_to_dl
154
- unset upgrade_rel public_rpc blacklist
156
+ unset upgrade_rel public_rpc blacklist multi_key archival
155
157
start_clean=false
156
158
loop=true
157
159
run_as_root=true
@@ -165,11 +167,13 @@ download_harmony_db=false
165
167
public_rpc=false
166
168
blacklist=./.hmy/blacklist.txt
167
169
static=false
170
+ multi_key=false
171
+ archival=false
168
172
${BLSKEYFILE=}
169
173
170
174
unset OPTIND OPTARG opt
171
175
OPTIND=1
172
- while getopts :1chk:sSp:dDmN:tT:i:ba:U:PvVB:I opt
176
+ while getopts :1chk:sSp:dDmN:tT:i:ba:U:PvVIMB:A opt
173
177
do
174
178
case " ${opt} " in
175
179
' ?' ) usage " unrecognized option -${OPTARG} " ;;
183
187
S) run_as_root=false ;;
184
188
p) blspass=" ${OPTARG} " ;;
185
189
d) download_only=true;;
190
+ M) multi_key=true;;
186
191
D) do_not_download=true;;
187
192
m) metrics=true;;
188
193
N) network=" ${OPTARG} " ;;
198
203
exit 0 ;;
199
204
V) LD_LIBRARY_PATH=. ./harmony -version
200
205
exit 0 ;;
206
+ A) archival=true;;
201
207
* ) err 70 " unhandled option -${OPTARG} " ;; # EX_SOFTWARE
202
208
esac
203
209
done
@@ -430,35 +436,38 @@ if ${run_as_root}; then
430
436
check_root
431
437
fi
432
438
433
- case " ${BLSKEYFILE} " in
434
- " " )
435
- unset -v f
436
- for f in \
437
- ~ /* --???? -?? -?? T?? -?? -?? .* Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \
438
- ~ /???????????????????????????????????????????????????????????????????????????????????????????????? .key \
439
- * --???? -?? -?? T?? -?? -?? .* Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \
440
- ???????????????????????????????????????????????????????????????????????????????????????????????? .key
441
- do
442
- [ -f " ${f} " ] || continue
439
+ # multi_key mode will use specified keys in .hmy/multikeys directory
440
+ if ! ${multi_key} ; then
441
+ case " ${BLSKEYFILE} " in
442
+ " " )
443
+ unset -v f
444
+ for f in \
445
+ ~ /* --???? -?? -?? T?? -?? -?? .* Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \
446
+ ~ /???????????????????????????????????????????????????????????????????????????????????????????????? .key \
447
+ * --???? -?? -?? T?? -?? -?? .* Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \
448
+ ???????????????????????????????????????????????????????????????????????????????????????????????? .key
449
+ do
450
+ [ -f " ${f} " ] || continue
451
+ case " ${BLSKEYFILE} " in
452
+ " " )
453
+ BLSKEYFILE=" ${f} "
454
+ ;;
455
+ * )
456
+ [ " ${f} " -ef " ${BLSKEYFILE} " ] || \
457
+ err 69 " multiple key files found (${f} , ${BLSKEYFILE} ); please use -k to specify"
458
+ ;;
459
+ esac
460
+ done
443
461
case " ${BLSKEYFILE} " in
444
- " " )
445
- BLSKEYFILE=" ${f} "
446
- ;;
447
- * )
448
- [ " ${f} " -ef " ${BLSKEYFILE} " ] || \
449
- err 69 " multiple key files found (${f} , ${BLSKEYFILE} ); please use -k to specify"
450
- ;;
462
+ " " ) err 69 " could not autodetect BLS key file; please use -k to specify" ;;
451
463
esac
452
- done
453
- case " ${BLSKEYFILE} " in
454
- " " ) err 69 " could not autodetect BLS key file; please use -k to specify" ;;
464
+ msg " autodetected BLS key file: ${BLSKEYFILE} "
465
+ ;;
466
+ * )
467
+ msg " using manually specified BLS key file: ${BLSKEYFILE} "
468
+ ;;
455
469
esac
456
- msg " autodetected BLS key file: ${BLSKEYFILE} "
457
- ;;
458
- * )
459
- msg " using manually specified BLS key file: ${BLSKEYFILE} "
460
- ;;
461
- esac
470
+ fi
462
471
463
472
any_new_binaries () {
464
473
local outdir
646
655
-dns_zone=" ${dns_zone} "
647
656
-blacklist=" ${blacklist} "
648
657
)
658
+ args+=(
659
+ -is_archival=" ${archival} "
660
+ )
661
+ if ! ${multi_key} ; then
662
+ args+=(
663
+ -blskey_file " ${BLSKEYFILE} "
664
+ )
665
+ fi
649
666
if ${public_rpc} ; then
650
667
args+=(
651
668
-public_rpc
0 commit comments