Перейти к содержанию

Скрипт для разворота NKN ноды [github]


Рекомендуемые сообщения

Файл: autoupdate.sh

 

#!/bin/bash

SCRIPT_NAME="nknupdate.sh"

if [[ "$USER" == "root" ]]; then
        HOMEFOLDER="/root/nkn-node"
 else
        HOMEFOLDER="/home/$USER/nkn-node"
fi

CURRENTDIR=$(pwd)
cd $HOMEFOLDER

if [[ -z $(sudo -u root crontab -l | grep 'nknupdate.sh') ]]; then
        sudo -u root crontab -l > cron
        echo -e "0 */2 * * * $HOMEFOLDER/nknupdate.sh >/dev/null 2>&1" >> cron
        sudo -u root crontab cron
        rm cron
fi
echo "Create script file..."

echo "#!/bin/bash" > $SCRIPT_NAME
echo >> $SCRIPT_NAME
echo 'GITPATH="https://github.com/nknorg/nkn.git"' >> $SCRIPT_NAME
echo 'RELEASES_PATH="https://github.com/nknorg/nkn/releases/download"' >> $SCRIPT_NAME
echo 'DIR_NAME="linux-amd64"' >> $SCRIPT_NAME
echo 'CURRENTDIR=$(pwd)' >> $SCRIPT_NAME
echo -e "cd $HOMEFOLDER" >> $SCRIPT_NAME
echo 'if [ -d nkn ]; then' >> $SCRIPT_NAME
echo '  cd nkn' >> $SCRIPT_NAME
echo '  git fetch' >> $SCRIPT_NAME
echo '  else' >> $SCRIPT_NAME
echo '  git clone $GITPATH' >> $SCRIPT_NAME
echo '  cd nkn' >> $SCRIPT_NAME
echo 'fi' >> $SCRIPT_NAME
echo -e "chown -R $USER:$USER $HOMEFOLDER/nkn" >> $SCRIPT_NAME
echo 'LATEST_TAG=$(git tag | sort -d | tail -n 1)' >> $SCRIPT_NAME
echo 'cd ..' >> $SCRIPT_NAME
echo -n 'if [[ -z $' >> $SCRIPT_NAME
echo -n -e "($HOMEFOLDER/nknd -v | grep " >> $SCRIPT_NAME
echo '$LATEST_TAG) ]]; then' >> $SCRIPT_NAME
echo '  sudo systemctl stop nkn.service' >> $SCRIPT_NAME
echo '  if [ -f $DIR_NAME.zip ]; then rm $DIR_NAME.zip; fi' >> $SCRIPT_NAME
echo '  wget "$RELEASES_PATH/$LATEST_TAG/$DIR_NAME.zip"' >> $SCRIPT_NAME
echo '  unzip "$DIR_NAME.zip" >/dev/null 2>&1' >> $SCRIPT_NAME
echo '  chmod +x $DIR_NAME/nkn*' >> $SCRIPT_NAME
echo '  cp -r $DIR_NAME/* .' >> $SCRIPT_NAME
echo '  rm ../Log/*' >> $SCRIPT_NAME
echo '  sudo systemctl start nkn.service' >> $SCRIPT_NAME
echo '  rm -rf $DIR_NAME' >> $SCRIPT_NAME
echo '  rm $DIR_NAME.zip' >> $SCRIPT_NAME
echo 'fi' >> $SCRIPT_NAME
echo 'LATEST_TAG=$( ps -e | grep nknd | awk '\''{print $1}'\'' )' >> $SCRIPT_NAME
echo 'if [ -z $LATEST_TAG ]; then systemctl start nkn.service; fi' >> $SCRIPT_NAME
echo 'cd $CURRENTDIR' >> $SCRIPT_NAME

chmod +x $SCRIPT_NAME
cd $CURRENTDIR
rm -rf nkn

Файл: install.sh

#!/bin/bash

GITPATH="https://github.com/nknorg/nkn.git"
RELEASES_PATH="https://github.com/nknorg/nkn/releases/download"
DIR_NAME="linux-amd64"
FCONFIG="config.json"
FWALLET="wallet.json"
IDTXFEE=1


#color
BLUE="\033[0;34m"
YELLOW="\033[0;33m"
CYAN="\033[0;36m"
PURPLE="\033[0;35m"
RED='\033[0;31m'
GREEN="\033[0;32m"
NC='\033[0m'
MAG='\e[1;35m'

if [[ "$USER" == "root" ]]; then
        HOMEFOLDER="/root/nkn-node"
#       echo -e "${RED}Do not install node in the root folder, please create new user${NC}"
#        exit 0
 else
        HOMEFOLDER="/home/$USER/nkn-node"
fi
sudo apt update
sudo apt install unzip cpulimit -y
CURRENTDIR=$(pwd)
if [ -d $HOMEFOLDER ] ; then cd $HOMEFOLDER ; else mkdir $HOMEFOLDER; cd $HOMEFOLDER; fi

if [ -d nkn ]; then 
  cd nkn
  git merge
  else
  git clone $GITPATH
  cd nkn
fi
LATEST_TAG=$(git tag --sort=-creatordate | head -1)
cd ..

if [ -f $DIR_NAME.zip ]; then rm $DIR_NAME.zip ; fi
if [ -f nknd ]; then
        echo -e "${RED}Bin files exist!${NC}"
        else
        echo -e "${CYAN}Downloading bin files...${NC}"
        wget "$RELEASES_PATH/$LATEST_TAG/$DIR_NAME.zip"
        if [ -f $DIR_NAME.zip ]; then 
                echo -e "${MAG}Unzipping bin files...${NC}"
                unzip $DIR_NAME.zip >/dev/null 2>&1
                echo -e "${BLUE}Moving bin files...${NC}"
                mv $DIR_NAME/nkn* .
                mv $DIR_NAME/certs .
                mv $DIR_NAME/web .
                rm -rf $DIR_NAME
                rm $DIR_NAME.zip
        else
                echo -e "${YELLOW}Bin files not found. Do you want to compile? [Y,n]:${NC}"
                read -e ANSWER
                if [ -z $ANSWER ] || [ $ANSWER = 'Y' ] || [ $ANSWER = 'y' ]; then
                        sudo add-apt-repository -y ppa:longsleep/golang-backports
                        sudo apt-get install -y golang-go
                        cd $HOMEFOLDER/nkn
                        make
                        mv nknd ..
                        mv nknc ..
                        cd $HOMEFOLDER
                 fi
        fi
fi
ADDRESS=ВашКошелек
echo -n -e "${YELLOW}Input Your BeneficiaryAddr:${NC}"
echo $ADDRESS
#read -e ADDRESS
IDTXFEE=10
echo -n -e "${YELLOW}Input Your RegisterIDTxnFee in sat(default 1 sat):${NC}"
#read -e IDTXFEE
echo $IDTXFEE
if [[ ! ${IDTXFEE} =~ ^[0-9]+$ ]] ; then IDTXFEE=1 ; fi
echo
#    "RegisterIDTxnFee": $IDTXFEE,
if [ -f $FCONFIG ]; then rm $FCONFIG ; fi
cat << EOF > $FCONFIG
{
  "BeneficiaryAddr": "$ADDRESS",
  "StatePruningMode": "lowmem",
  "SeedList": [
    "http://mainnet-seed-0001.nkn.org:30003",
    "http://mainnet-seed-0002.nkn.org:30003",
    "http://mainnet-seed-0003.nkn.org:30003",
    "http://mainnet-seed-0004.nkn.org:30003",
    "http://mainnet-seed-0005.nkn.org:30003",
    "http://mainnet-seed-0006.nkn.org:30003",
    "http://mainnet-seed-0007.nkn.org:30003",
    "http://mainnet-seed-0008.nkn.org:30003",
    "http://mainnet-seed-0009.nkn.org:30003",
    "http://mainnet-seed-0010.nkn.org:30003",
    "http://mainnet-seed-0011.nkn.org:30003",
    "http://mainnet-seed-0012.nkn.org:30003",
    "http://mainnet-seed-0013.nkn.org:30003",
    "http://mainnet-seed-0014.nkn.org:30003",
    "http://mainnet-seed-0015.nkn.org:30003",
    "http://mainnet-seed-0016.nkn.org:30003",
    "http://mainnet-seed-0017.nkn.org:30003",
    "http://mainnet-seed-0018.nkn.org:30003",
    "http://mainnet-seed-0019.nkn.org:30003",
    "http://mainnet-seed-0020.nkn.org:30003",
    "http://mainnet-seed-0021.nkn.org:30003",
    "http://mainnet-seed-0022.nkn.org:30003",
    "http://mainnet-seed-0023.nkn.org:30003",
    "http://mainnet-seed-0024.nkn.org:30003",
    "http://mainnet-seed-0025.nkn.org:30003",
    "http://mainnet-seed-0026.nkn.org:30003",
    "http://mainnet-seed-0027.nkn.org:30003",
    "http://mainnet-seed-0028.nkn.org:30003",
    "http://mainnet-seed-0029.nkn.org:30003",
    "http://mainnet-seed-0030.nkn.org:30003",
    "http://mainnet-seed-0031.nkn.org:30003",
    "http://mainnet-seed-0032.nkn.org:30003",
    "http://mainnet-seed-0033.nkn.org:30003",
    "http://mainnet-seed-0034.nkn.org:30003",
    "http://mainnet-seed-0035.nkn.org:30003",
    "http://mainnet-seed-0036.nkn.org:30003",
    "http://mainnet-seed-0037.nkn.org:30003",
    "http://mainnet-seed-0038.nkn.org:30003",
    "http://mainnet-seed-0039.nkn.org:30003",
    "http://mainnet-seed-0040.nkn.org:30003",
    "http://mainnet-seed-0041.nkn.org:30003",
    "http://mainnet-seed-0042.nkn.org:30003",
    "http://mainnet-seed-0043.nkn.org:30003",
    "http://mainnet-seed-0044.nkn.org:30003"
  ],
  "GenesisBlockProposer": "a0309f8280ca86687a30ca86556113a253762e40eb884fc6063cad2b1ebd7de5"
}
EOF
sleep 2
if [ -f $FWALLET ] ; then
        echo -e "${RED}Wallet already exist!${NC}"
        echo -n -e "${YELLOW}Input your wallet password:${NC}"
        read -e WPASSWORD        
        else
        echo -e "${CYAN}Create new wallet...${NC}"
        WPASSWORD=12345
        echo -n -e "${YELLOW}Input your wallet password:${NC}"
        #read -e WPASSWORD
        echo $WPASSWORD
        echo -e "${GREEN}"
        ./nknc wallet -c -p $WPASSWORD
        echo -e "${NC}"
        #echo -n -e "${YELLOW}Send $IDTXFEE sat nkn to address and press <ENTER>${NC}"
        #read -e ANSWER
        fi
sleep 2
echo -e "${CYAN}Creating nkn service...${NC}"

echo "[Unit]" > nkn.service
echo "Description=nkn" >> nkn.service
echo "[Service]" >> nkn.service
echo -e "User=$USER" >> nkn.service
echo -e "WorkingDirectory=$HOMEFOLDER" >> nkn.service
echo -e "ExecStart=$HOMEFOLDER/nknd -p $WPASSWORD" >> nkn.service
echo "Restart=always" >> nkn.service
echo "RestartSec=3" >> nkn.service
echo "LimitNOFILE=500000" >> nkn.service
echo "[Install]" >> nkn.service
echo "WantedBy=default.target" >> nkn.service

sudo cp nkn.service /etc/systemd/system/nkn.service
sudo systemctl enable nkn.service

rm nkn.service

echo -e "${CYAN}firewall setup...${NC}"
sudo ufw allow 30001/tcp
sudo ufw allow 30002/tcp
sudo ufw allow 30003/tcp
sudo ufw allow 30004/tcp
sudo ufw allow 30005/tcp

ANSWER=y
echo -e "${YELLOW}Do you want to download bootstrap file? [Y,n]: ${NC}"
echo $ANSWER
#read -e ANSWER
if [ -z $ANSWER ] || [ $ANSWER = 'Y' ] || [ $ANSWER = 'y' ]; then
        cd $HOMEFOLDER
        wget https://nkn.org/ChainDB_pruned_latest.zip
        sudo cpulimit -l 60 unzip ChainDB_pruned_latest.zip | tr '\n' '\r' > /dev/null 2>&1
        rm -rf ChainDB_pruned_latest.zip
fi       

echo -e "${CYAN}Starting nkn service...${NC}"
sudo systemctl start nkn.service
echo
#echo -e "${GREEN}"
#./nknc wallet -l account -p $WPASSWORD
#echo -e "${NC}"
echo -e "${MAG}Nkn node control:${NC}"
echo -e "${CYAN}Start nkn node: ${BLUE}sudo systemctl start nkn.service${NC}"
echo -e "${CYAN}Stop nkn node: ${BLUE}sudo systemctl stop nkn.service${NC}"
echo -e "${CYAN}Enabe nkn service: ${BLUE}sudo systemctl enable nkn.service${NC}"
echo -e "${CYAN}Disable nkn service: ${BLUE}sudo systemctl disable nkn.service${NC}"
echo -e "${CYAN}Status nkn node: ${BLUE}sudo systemctl status nkn.service${NC}"
echo -e "${BLUE}or use command ./nknc info --state for statistics${NC}"
echo -e "${CYAN}For nkn.service file editing: ${BLUE}sudo nano /etc/systemd/system/nkn.service${NC}"
echo -e "${CYAN}After editing nkn.service file: ${BLUE}sudo systemctl daemon-reload${NC}"

cd $CURRENTDIR
bash ВАШАДЕРИКТОРИЯ/autoupdate.sh
rm -rf nkn

secs=$((3 * 60))
while [ $secs -gt 0 ]; do
   echo -ne "${YELLOW}Please wait 3 minuts... $secs\033[0K\r${NC}"
   sleep 1
   : $((secs--))
done
echo
nkn-node/nknc info -s

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...
Top.Mail.Ru