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 | 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 | ||||||
|  | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user