-
Notifications
You must be signed in to change notification settings - Fork 0
/
deployment.sh
98 lines (87 loc) · 3.94 KB
/
deployment.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
#################################################################
# VeChain Deployment script will configure thor node from the source #
#################################################################
#################################################################
# Clear the console and read network details from the arguments #
#################################################################
clear
network=$1
#################################################################
# VeChain Deployment script starts here #
#################################################################
echo "This script will setup a VeChain node."
echo "---"
#################################################################
# Set environment paths #
#################################################################
echo "Setting up environment variables"
cd ~
sudo touch ${HOME}/.profile
sudo echo "export PATH=$PATH:/usr/local/go/bin" >> ${HOME}/.profile
sudo echo "export GOPATH=$HOME/go" >> ${HOME}/.profile
export PATH=$PATH:/usr/local/go/bin
export GOPATH=${HOME}/go
export network=${network}
sudo mkdir -p $GOPATH/src
echo "---"
#################################################################
# Updating and upgrading linux environment #
#################################################################
echo "Performing a general system update (this might take a while)..."
sudo apt-get update > /dev/null 2>&1
sudo apt-get -y upgrade > /dev/null 2>&1
sudo apt-get -y dist-upgrade > /dev/null 2>&1
echo "---"
#################################################################
# Installing pre-requisites for VeChain deployment #
#################################################################
echo "Installing prerequisites..."
sudo apt-get -y install build-essential libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev git > /dev/null 2>&1
echo "---"
#################################################################
# Downloading and installing Go dependency #
#################################################################
echo "Installing go..."
cd ~
sudo wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz > /dev/null 2>&1
sudo tar -C /usr/local -xzf go1.14.linux-amd64.tar.gz > /dev/null 2>&1
sudo chmod +x /usr/local/go/bin/go > /dev/null 2>&1
sudo rm go1.14.linux-amd64.tar.gz > /dev/null 2>&1
echo "---"
#################################################################
# Downloading and installing Dep dependency #
#################################################################
echo "Installing dep..."
cd /usr/local/bin/
sudo wget https://github.com/golang/dep/releases/download/v0.5.4/dep-linux-amd64 > /dev/null 2>&1
sudo ln -s dep-linux-amd64 dep > /dev/null 2>&1
sudo chmod +x /usr/local/bin/* > /dev/null 2>&1
echo "---"
#################################################################
# Cloning VeChain git repositor and build the complete suite #
#################################################################
echo "Installing and configuring VeChain..."
sudo git clone https://github.com/vechain/thor.git $GOPATH/src/VeChain/thor > /dev/null 2>&1
cd $GOPATH/src/VeChain/thor
sudo chmod -R 777 ${HOME}/go
make dep > /dev/null 2>&1
make all > /dev/null 2>&1
echo "---"
################################################################
# Configure to auto start thor node at boot #
################################################################
file=/etc/init.d/vechain
if [ ! -e "$file" ]
then
printf '%s\n%s\n' '#!/bin/sh' '$GOPATH/src/VeChain/thor/bin/thor -network $network' | sudo tee /etc/init.d/vechain
sudo chmod +x /etc/init.d/vechain
sudo update-rc.d vechain defaults
fi
################################################################
# Start thor node #
################################################################
#$GOPATH/src/VeChain/thor/bin/thor -network "$network" > /dev/null 2>&1
sudo $GOPATH/src/VeChain/thor/bin/thor -network $network
echo "VeChain thor node has been setup successfully and is running..."
exit 0