[node] add -M support multi-key mode

Signed-off-by: Leo Chen <leo@harmony.one>
pull/2041/head
Leo Chen 5 years ago
parent 246ede3e0f
commit fcb04eeded
  1. 68
      scripts/node.sh

@ -121,6 +121,7 @@ options:
-V print out the version of the Harmony binary -V print out the version of the Harmony binary
-z run in staking mode -z run in staking mode
-y run in legacy, foundational-node mode (default) -y run in legacy, foundational-node mode (default)
-M support multi-key mode (default: off)
examples: examples:
@ -157,7 +158,7 @@ BUCKET=pub.harmony.one
OS=$(uname -s) OS=$(uname -s)
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 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
unset upgrade_rel public_rpc staking_mode pub_port unset upgrade_rel public_rpc staking_mode pub_port multi_key
start_clean=false start_clean=false
loop=true loop=true
run_as_root=true run_as_root=true
@ -170,11 +171,12 @@ shard_id=1
download_harmony_db=false download_harmony_db=false
public_rpc=false public_rpc=false
staking_mode=false staking_mode=false
multi_key=false
${BLSKEYFILE=} ${BLSKEYFILE=}
unset OPTIND OPTARG opt unset OPTIND OPTARG opt
OPTIND=1 OPTIND=1
while getopts :1chk:sSp:dDmN:tT:i:ba:U:PvVyzn: opt while getopts :1chk:sSp:dDmN:tT:i:ba:U:PvVyzn:M opt
do do
case "${opt}" in case "${opt}" in
'?') usage "unrecognized option -${OPTARG}";; '?') usage "unrecognized option -${OPTARG}";;
@ -189,6 +191,7 @@ do
p) blspass="${OPTARG}";; p) blspass="${OPTARG}";;
d) download_only=true;; d) download_only=true;;
D) do_not_download=true;; D) do_not_download=true;;
M) multi_key=true;;
m) metrics=true;; m) metrics=true;;
N) network="${OPTARG}";; N) network="${OPTARG}";;
n) pub_port="${OPTARG}";; n) pub_port="${OPTARG}";;
@ -438,35 +441,38 @@ if ${run_as_root}; then
check_root check_root
fi fi
case "${BLSKEYFILE}" in # multi_key mode will use specified keys in .hmy/multikeys directory
"") if ! ${multi_key}; then
unset -v f case "${BLSKEYFILE}" in
for f in \ "")
~/*--????-??-??T??-??-??.*Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \ unset -v f
~/????????????????????????????????????????????????????????????????????????????????????????????????.key \ for f in \
*--????-??-??T??-??-??.*Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \ ~/*--????-??-??T??-??-??.*Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \
????????????????????????????????????????????????????????????????????????????????????????????????.key ~/????????????????????????????????????????????????????????????????????????????????????????????????.key \
do *--????-??-??T??-??-??.*Z--bls_???????????????????????????????????????????????????????????????????????????????????????????????? \
[ -f "${f}" ] || continue ????????????????????????????????????????????????????????????????????????????????????????????????.key
do
[ -f "${f}" ] || continue
case "${BLSKEYFILE}" in
"")
BLSKEYFILE="${f}"
;;
*)
[ "${f}" -ef "${BLSKEYFILE}" ] || \
err 69 "multiple key files found (${f}, ${BLSKEYFILE}); please use -k to specify"
;;
esac
done
case "${BLSKEYFILE}" in case "${BLSKEYFILE}" in
"") "") err 69 "could not autodetect BLS key file; please use -k to specify";;
BLSKEYFILE="${f}"
;;
*)
[ "${f}" -ef "${BLSKEYFILE}" ] || \
err 69 "multiple key files found (${f}, ${BLSKEYFILE}); please use -k to specify"
;;
esac esac
done msg "autodetected BLS key file: ${BLSKEYFILE}"
case "${BLSKEYFILE}" in ;;
"") err 69 "could not autodetect BLS key file; please use -k to specify";; *)
msg "using manually specified BLS key file: ${BLSKEYFILE}"
;;
esac esac
msg "autodetected BLS key file: ${BLSKEYFILE}" fi
;;
*)
msg "using manually specified BLS key file: ${BLSKEYFILE}"
;;
esac
any_new_binaries() { any_new_binaries() {
local outdir local outdir
@ -649,10 +655,14 @@ do
-ip "${PUB_IP}" -ip "${PUB_IP}"
-port "${NODE_PORT}" -port "${NODE_PORT}"
-is_genesis -is_genesis
-blskey_file "${BLSKEYFILE}"
-network_type="${network_type}" -network_type="${network_type}"
-dns_zone="${dns_zone}" -dns_zone="${dns_zone}"
) )
if ! ${multi_key}; then
args+=(
-blskey_file "${BLSKEYFILE}"
)
fi
if ${public_rpc}; then if ${public_rpc}; then
args+=( args+=(
-public_rpc -public_rpc

Loading…
Cancel
Save