session key helper added

Signed-off-by: Uncle Stinky <uncle.stinky@ghostchain.io>
This commit is contained in:
Uncle Stinky 2024-10-11 02:16:33 +03:00
parent 7b59411e5f
commit e850ed9aea
Signed by: st1nky
GPG Key ID: 016064BD97603B40

View File

@ -2,6 +2,8 @@
set -Ee set -Ee
CHECK_KEYS=false
INSERT_KEYS=false
UNIT_FILE=false UNIT_FILE=false
SKIP_BUILD=false SKIP_BUILD=false
SET_ENVIRONMENT=false SET_ENVIRONMENT=false
@ -46,6 +48,8 @@ help() {
echo -e "-u, --unit-file\n\tCreation of systemd unit file." echo -e "-u, --unit-file\n\tCreation of systemd unit file."
echo -e "-m, --make-global\n\tStore compiled ghost executable and chain specification globally." echo -e "-m, --make-global\n\tStore compiled ghost executable and chain specification globally."
echo -e "-a, --set-arguments\n\tPrepare CLI arguments for running ghost node." echo -e "-a, --set-arguments\n\tPrepare CLI arguments for running ghost node."
echo -e "-k, --check-keys\n\tCheck if your keys are already included in 'ghosties' file."
echo -e "-r, --insert-keys\n\tInsert session keys to the keystore via JSON RPC."
echo -e "-r, --release\n\tCompile node with '--release' flag." echo -e "-r, --release\n\tCompile node with '--release' flag."
echo -e "-p, --profile\n\tCompile node with '--profile [PROFILE]' flag." echo -e "-p, --profile\n\tCompile node with '--profile [PROFILE]' flag."
echo -e "-f, --features\n\tCompilation features '--features=\"FEATURE1,FEATURE2\"'" echo -e "-f, --features\n\tCompilation features '--features=\"FEATURE1,FEATURE2\"'"
@ -79,6 +83,12 @@ while [ $# -gt 0 ]; do
--set-arguments|-a) --set-arguments|-a)
ARGUMENTS=true ARGUMENTS=true
;; ;;
--check-keys|-k)
CHECK_KEYS=true
;;
--insert-keys|-k)
INSERT_KEYS=true
;;
--release|-r) --release|-r)
RELEASE="--release" RELEASE="--release"
TARGET="release" TARGET="release"
@ -292,6 +302,11 @@ if [[ $ARGUMENTS = true ]]; then
CLI_ARGS+=("--no-prometheus") CLI_ARGS+=("--no-prometheus")
fi fi
read -p "[?] list of bootnodes if any: " bootnodes
if [ ! -z $bootnodes ]; then
CLI_ARGS+=("--bootnodes=$bootnodes")
fi
# default for now # default for now
CLI_ARGS+=("--base-path=$NODE_PATH") CLI_ARGS+=("--base-path=$NODE_PATH")
CLI_ARGS+=("--state-pruning=archive") CLI_ARGS+=("--state-pruning=archive")
@ -308,3 +323,49 @@ if [[ $ARGUMENTS = true ]]; then
echo "[+] new CLI arguments stored in '/etc/default/ghost'" echo "[+] new CLI arguments stored in '/etc/default/ghost'"
cat /etc/default/ghost cat /etc/default/ghost
fi fi
if [ $CHECK_KEYS = true ]; then
read -p "[?] path to the file with session key: (default: /etc/ghost/session-key) " seed_path
seed_path="${seed_path:-/etc/ghost/session-key}"
if [ ! -f $seed_path ]; then
echo "[-] path to session keys not valid"
exit 1
fi
echo "[+] path $seed_path is valid"
seed=$(cat $seed_path)
if [ $INSERT_KEYS = true ]; then
read -p "[?] JSON RPC endpoint to the node: (default: localhost:9945) " rpc_endpoint
rpc_endpoint="${rpc_endpoint:-localhost:9945}"
fi
for type in $(echo audi babe gran slow); do
echo "[+] parsing session key for [$type]"
scheme="sr25519"
if [ $type = "gran" ]; then
scheme="ed25519"
fi
secret_seed=$(ghost key inspect --scheme="$scheme" "$seed//$type" | grep "Secret seed" | awk '{ print $3 }')
account_id=$(ghost key inspect --scheme="$scheme" "$seed//$type" | grep "Account ID" | awk '{ print $3 }')
echo "[+] inspected account id: $account_id"
num_keys=$(grep $account_id "$PROJECT_FOLDER/service/ghosties" | wc -l)
num_types=$(grep $account_id "$PROJECT_FOLDER/service/ghosties" | grep $type | wc -l)
if [ ! $num_keys = 1 ] || [ ! $num_types = 1 ]; then
echo "[-] inspected account id not found on 'ghosties' file or wrong key type"
exit 1
fi
echo "[+] inspected account id found in 'ghosties' file with correct key type"
if [ $INSERT_KEYS = true ]; then
echo "[+] trying to make an 'author_insertKey' RPC call to $rpc_endpoint..."
curl --location $rpc_endpoint \
--header "Content-Type: application/json" \
--data '{ "id":1, "jsonrpc":"2.0", "method":"author_insertKey", "params": ["'"$type"'", "'"$secret_seed"'", "'"$account_id"'"] }'
fi
echo
done
fi