Skip to content

Commit

Permalink
feat: add tools for validators
Browse files Browse the repository at this point in the history
  • Loading branch information
erbielab committed Jun 6, 2024
1 parent eff28f4 commit 6ddcddf
Show file tree
Hide file tree
Showing 3 changed files with 194 additions and 32 deletions.
69 changes: 38 additions & 31 deletions erbie_install.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
#check docker cmd
echo "Script version Number: v0.15.0"
echo "Script version Number: v1.0.2"
which docker >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "docker not found, please install first!"
Expand All @@ -21,18 +21,23 @@ fi
vt5=1670383155
vl=$(wget https://docker.erbie.io/version>/dev/null 2>&1 && cat version|awk '{print $1}')
vr=$(cat version|awk '{print $2}' && rm version)
erb=$(docker images|grep "erbie/erbie"|grep "v1")
erb=$(docker images|grep "erbie/erbie"|grep "latest")

if [ -n "$erb" ];then
ct=$(docker inspect erbie/erbie:v1 -f {{.Created}})
#erbie/erbie:latest image in machine
ct=$(docker inspect erbie/erbie:latest -f {{.Created}})
cts=$(date -d "$ct" +%s)
if [ $cts -eq $vl ];then
#version is latest
container=$(docker ps -a|awk '{if($NF == "erbie")print $0}')
if [[ $container =~ "Up" ]];then
#erbie container is running
while true
do
key=$(docker exec -it erbie /usr/bin/ls -l /erb/.erbie/erbie/nodekey)
if [ -n "$key" ];then
echo -e "It is the latest version: $vr \nYour private key:"
#nodekey is alive
echo -e "Erbie is the latest versiob: $vr \nnode private key:"
docker exec -it erbie /usr/bin/cat /erb/.erbie/erbie/nodekey
echo -e "\n"
exit 0
Expand All @@ -41,53 +46,53 @@ if [ -n "$erb" ];then
fi
done
elif [[ $container =~ "Exited" ]];then
echo -e "Your peer isn't running\nYou can use 'docker start erbie' to start the node"
echo -e "Your node isn't running\nYou can use 'docker start erbie' to start the node"
exit 0
else
docker rm erbie
read -p "Enter your private key:" ky
#read -p "Enter your private key:" ky
fi
elif [ $cts -lt $vl ];then
docker stop erbie > /dev/null 2>&1
docker rm erbie > /dev/null 2>&1
docker rmi erbie/erbie:v1 > /dev/null 2>&1
docker rmi erbie/erbie:latest > /dev/null 2>&1
if [ $cts -lt $vt5 ];then
if [ -f /erb/.erbie/erbie/nodekey ];then
echo "Clearing historical data ............"
cp /erb/.erbie/erbie/nodekey /erb/nodekey
rm -rf /erb/.erbie
mkdir -p /erb/.erbie/erbie
mv /erb/nodekey /erb/.erbie/erbie/
else
read -p "Enter your private key:" ky
fi
elif [ $cts -ge $vt5 ];then
if [ ! -f /erb/.erbie/erbie/nodekey ];then
read -p "Enter your private key:" ky
#else
#read -p "Enter your private key:" ky
fi
#elif [ $cts -ge $vt5 ];then
#if [ ! -f /erb/.erbie/erbie/nodekey ];then
#read -p "Enter your private key:" ky
#fi
fi
fi
else
read -p "Enter your private key:" ky
#else
#read -p "Enter your private key:" ky
fi

if [ -n "$ky" ]; then
mkdir -p /erb/.erbie/erbie
if [ ${#ky} -eq 64 ];then
echo $ky > /erb/.erbie/erbie/nodekey
elif [ ${#ky} -eq 66 ] && ([ ${ky:0:2} == "0x" ] || [ ${ky:0:2} == "0X" ]);then
echo ${ky:2:64} > /erb/.erbie/erbie/nodekey
else
echo "the nodekey format is not correct"
exit 1
fi
fi
#if [ -n "$ky" ]; then
# mkdir -p /erb/.erbie/erbie
# if [ ${#ky} -eq 64 ];then
# echo $ky > /erb/.erbie/erbie/nodekey
# elif [ ${#ky} -eq 66 ] && ([ ${ky:0:2} == "0x" ] || [ ${ky:0:2} == "0X" ]);then
# echo ${ky:2:64} > /erb/.erbie/erbie/nodekey
# else
# echo "the nodekey format is not correct"
# exit 1
# fi
#fi

docker pull erbie/erbie:v1
docker pull erbie/erbie:latest

docker images|awk '{print $1,$2}'|while read img ver
do
if [[ $img == "erbie/erbie" ]] && [[ $ver == "v1" ]];then
if [[ $img == "erbie/erbie" ]] && [[ $ver == "latest" ]];then
echo "true">temp
break
fi
Expand All @@ -101,15 +106,16 @@ else
exit 1
fi

docker run -id -p 30303:30303 -p 8545:8545 -v /erb/.erbie:/erb/.erbie --name erbie erbie/erbie:v1
docker run -id -p 30303:30303 -p 8545:8545 -v /erb/.erbie:/erb/.erbie --name erbie erbie/erbie:latest

while true
do
echo -e "running the container...\n"
s=$(docker ps -a|grep "Up"|awk '{if($NF == "erbie") print $NF}'|wc -l)
key=$(docker exec -it erbie /usr/bin/ls -l /erb/.erbie/erbie/nodekey 2>/dev/null)
if [[ $s -gt 0 ]] && [[ "$key" =~ "nodekey" ]];then
echo "Your private key is:"
#echo "ls -l /erb/.erbie/erbie/nodekey:"$key
if [[ $s -gt 0 ]] && [[ "$key" =~ "root" ]];then
echo "node private key:"
docker exec -it erbie /usr/bin/cat /erb/.erbie/erbie/nodekey
echo -ne "\n"
docker exec -it erbie ./erbie version|grep "Version"|grep -v go
Expand All @@ -118,3 +124,4 @@ do
sleep 5s
fi
done

2 changes: 1 addition & 1 deletion params/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import (
const (
VersionMajor = 1 // Major version component of the current release
VersionMinor = 0 // Minor version component of the current release
VersionPatch = 1 // Patch version component of the current release
VersionPatch = 2 // Patch version component of the current release
VersionMeta = "stable" // Version metadata to append to the version string
)

Expand Down
155 changes: 155 additions & 0 deletions validator_tool.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
#!/bin/bash
noderpcurl="http://127.0.0.1:8545"
nodekeypwd=".erbie/erbie/nodekey"

echo """
***********************************************************************
Notice:
Default value in this script should modifided base on your situation:
node rpc url;noderpcurl="http://127.0.0.1:8545"
node file: nodekeypwd=".erbie/erbie/nodekey"
**********************************************************************
"""

echo "Please choose and enter the number:"
echo

select opt in "to be a validator" "do not to be a validator" "displays the corresponding address based on the private key" "exit"
do
case $opt in
"to be a validator")
#read -p "Enter your private key:" ky
PASS=""
echo -e "Enter your private key: \c"
while : ;do
char=` #这里是反引号,tab键上面那个
stty cbreak -echo
dd if=/dev/tty bs=1 count=1 2>/dev/null
stty -cbreak echo
` #这里是反引号,tab键上面那个
if [ "$char" = "" ];then
echo #这里的echo只是为换行
break
fi
PASS="$PASS$char"
echo -n "*"
done

if [ -n "$PASS" ]; then
if [ ${#PASS} -ne 64 ];then
#echo $PASS
#else
echo "the private key format is not correct"
#break
else


#nodekey=$(cat .erbie/erbie/nodekey)
nodekey=$(cat $nodekeypwd)
#echo $nodekey

./erbvalidator -cmd 1 -nodeurl $noderpcurl -prikey $PASS -proxykey $nodekey

address=$( ./erbvalidator -cmd 3 -nodeurl $noderpcurl -prikey $PASS | awk '{print $3}')
echo "private key address is: "$address
echo "waitting for Verify operation results ..."
sleep 30
result=$(curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"eth_getAccountInfo","params":["'$address'", "latest"],"id":50888}' $noderpcurl 2>/dev/null |grep -i $address)
if [ -n "$result" ];then
echo "validator!"
else
echo "not validator!"
fi
fi
fi
#break
;;
"do not to be a validator")
#echo "do not to be a validator"
# 在这里添加操作B的代码
PASS=""
echo -e "Enter your private key: \c"
while : ;do
char=` #这里是反引号,tab键上面那个
stty cbreak -echo
dd if=/dev/tty bs=1 count=1 2>/dev/null
stty -cbreak echo
` #这里是反引号,tab键上面那个
if [ "$char" = "" ];then
echo #这里的echo只是为换行
break
fi
PASS="$PASS$char"
echo -n "*"
done

if [ -n "$PASS" ]; then
if [ ${#PASS} -ne 64 ];then
echo "the private key format is not correct"

else


./erbvalidator -cmd 2 -nodeurl $noderpcurl -prikey $PASS

address=$( ./erbvalidator -cmd 3 -nodeurl $noderpcurl -prikey $PASS | awk '{print $3}')
echo "private key address is: "$address
echo "waitting for Verify operation results ..."
sleep 30

result=$(curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"eth_getAccountInfo","params":["'$address'", "latest"],"id":51888}' $noderpcurl 2>/dev/null |grep -i $address)
if [ -n "$result" ];then
echo "validator!"
else
echo "not validator!"
fi
fi
fi


#break
;;
"displays the corresponding address based on the private key")
#echo "displays the corresponding address based on the private key"
# 在这里添加操作C的代码

PASS=""
echo -e "Enter your private key: \c"
while : ;do
char=` #这里是反引号,tab键上面那个
stty cbreak -echo
dd if=/dev/tty bs=1 count=1 2>/dev/null
stty -cbreak echo
` #这里是反引号,tab键上面那个
if [ "$char" = "" ];then
echo #这里的echo只是为换行
break
fi
PASS="$PASS$char"
echo -n "*"
done

if [ -n "$PASS" ]; then
if [ ${#PASS} -ne 64 ];then
#echo $PASS

echo "the private key format is not correct"
#break
else


#./erbvalidator -cmd 3 -nodeurl "http://127.0.0.1:8545" -prikey $PASS
address=$( ./erbvalidator -cmd 3 -nodeurl "http://127.0.0.1:8545" -prikey $PASS | awk '{print $3}')
echo "private key address is: "$address
fi
fi
#break
;;
"exit")
echo "exit"
break
;;
*) echo "Invalid option $REPLY";;
esac
done

0 comments on commit 6ddcddf

Please sign in to comment.