forked from ghostchain/ghost-node
		
	session key helper added
Signed-off-by: Uncle Stinky <uncle.stinky@ghostchain.io>
This commit is contained in:
		
							parent
							
								
									7b59411e5f
								
							
						
					
					
						commit
						e850ed9aea
					
				| @ -2,6 +2,8 @@ | ||||
| 
 | ||||
| set -Ee | ||||
| 
 | ||||
| CHECK_KEYS=false | ||||
| INSERT_KEYS=false | ||||
| UNIT_FILE=false | ||||
| SKIP_BUILD=false | ||||
| SET_ENVIRONMENT=false | ||||
| @ -46,6 +48,8 @@ help() { | ||||
|     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 "-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 "-p, --profile\n\tCompile node with '--profile [PROFILE]' flag." | ||||
|     echo -e "-f, --features\n\tCompilation features '--features=\"FEATURE1,FEATURE2\"'" | ||||
| @ -79,6 +83,12 @@ while [ $# -gt 0 ]; do | ||||
|         --set-arguments|-a) | ||||
|             ARGUMENTS=true | ||||
|             ;; | ||||
|         --check-keys|-k) | ||||
|             CHECK_KEYS=true | ||||
|             ;; | ||||
|         --insert-keys|-k) | ||||
|             INSERT_KEYS=true | ||||
|             ;; | ||||
|         --release|-r) | ||||
|             RELEASE="--release" | ||||
|             TARGET="release" | ||||
| @ -292,6 +302,11 @@ if [[ $ARGUMENTS = true ]]; then | ||||
|         CLI_ARGS+=("--no-prometheus") | ||||
|     fi | ||||
| 
 | ||||
|     read -p "[?] list of bootnodes if any: " bootnodes | ||||
|     if [ ! -z $bootnodes ]; then | ||||
|         CLI_ARGS+=("--bootnodes=$bootnodes") | ||||
|     fi | ||||
| 
 | ||||
|     # default for now | ||||
|     CLI_ARGS+=("--base-path=$NODE_PATH") | ||||
|     CLI_ARGS+=("--state-pruning=archive") | ||||
| @ -308,3 +323,49 @@ if [[ $ARGUMENTS = true ]]; then | ||||
|     echo "[+] new CLI arguments stored in '/etc/default/ghost'" | ||||
|     cat /etc/default/ghost | ||||
| 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 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user