added election script

This commit is contained in:
Lorenz Herzberger 2022-02-16 16:42:11 +01:00
parent 1dd0756d09
commit cdb465d6bc
No known key found for this signature in database
GPG Key ID: FA5EE906EB55316A

76
scripts/election.sh Executable file
View File

@ -0,0 +1,76 @@
#!/bin/bash
# Copyright © 2020 Interplanetary Database Association e.V.,
# Planetmint and IPDB software contributors.
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
# Code is Apache-2.0 and docs are CC-BY-4.0
# Change user and activate virtualenv
activate () {
cd /home/bigchaindb
source env/bigchaindb/bin/activate
}
# Show tendermint node id
show_id () {
su tendermint -c "cd && go/bin/tendermint show_node_id"
}
# Show validator public key
show_validator () {
su tendermint -c "cd && go/bin/tendermint show_validator"
}
# Elect new voting power for node
elect_validator () {
activate
bigchaindb election new upsert-validator $1 $2 $3 --private-key /tmp/priv_validator_key.json
}
# Show election state
show_election () {
activate
bigchaindb election show $1
}
# Approve election
approve_validator () {
activate
bigchaindb election approve $1 --private-key /tmp/priv_validator_key.json
}
# Fetch tendermint id and pubkey and create upsert proposal
elect () {
node_id=$(show_id)
validator_pubkey=$(show_validator | jq -r .value)
proposal=$(elect_validator $validator_pubkey $1 $node_id 2>&1 | grep SUCCESS)
echo ${proposal##* }
}
usage () {
echo "usage: TODO"
}
while [ "$1" != "" ]; do
case $1 in
show_id ) show_id
;;
show_validator ) show_validator
;;
elect ) shift
elect $1
;;
show_election ) shift
show_election $1
;;
approve ) shift
approve_validator $1
;;
* ) usage
exit 1
esac
shift
done
exitcode=$?
exit $exitcode