remove INSTALL dir, add INSTALL.md, update DOCKERpull/307/head
@ -0,0 +1,57 @@ | |||||
# Install Go | |||||
[Install Go, set the `GOPATH`, and put `GOPATH/bin` on your `PATH`](https://github.com/tendermint/tendermint/wiki/Setting-GOPATH). | |||||
# Install Tendermint | |||||
You should be able to install the latest with a simple `go get -u github.com/tendermint/tendermint/cmd/tendermint`. | |||||
The `-u` makes sure all dependencies are updated as well. | |||||
Run `tendermint version` and `tendermint --help`. | |||||
If the install falied, see [vendored dependencies below](#vendored-dependencies). | |||||
To start a one-node blockchain with a simple in-process application: | |||||
``` | |||||
tendermint init | |||||
tendermint node --proxy_app=dummy | |||||
``` | |||||
See the [application developers guide](https://github.com/tendermint/tendermint/wiki/Application-Developers) for more details on building and running applications. | |||||
## Vendored dependencies | |||||
If the `go get` failed, updated dependencies may have broken the build. | |||||
Install the correct version of each dependency using `glide`. | |||||
Fist, install `glide`: | |||||
``` | |||||
go get github.com/Masterminds/glide | |||||
``` | |||||
Now, fetch the dependencies and install them with `glide` and `go`: | |||||
``` | |||||
cd $GOPATH/src/github.com/tendermint/tendermint | |||||
glide install | |||||
go install ./cmd/tendermint | |||||
``` | |||||
Sometimes `glide install` is painfully slow. Hang in there champ. | |||||
The latest Tendermint Core version is now installed. Check by running `tendermint version`. | |||||
## Troubleshooting | |||||
If `go get` failing bothers you, fetch the code using `git`: | |||||
``` | |||||
mkdir -p $GOPATH/src/github.com/tendermint | |||||
git clone https://github.com/tendermint/tendermint $GOPATH/src/github.com/tendermint/tendermint | |||||
cd $GOPATH/src/github.com/tendermint/tendermint | |||||
glide install | |||||
go install ./cmd/tendermint | |||||
``` |
@ -1,21 +0,0 @@ | |||||
1. Fork github.com/tendermint/tendermint. | |||||
2. Run "make", it should install the daemon, which we named "tendermint". | |||||
3. Run "tendermint gen_account". Save the address, pub_key bytes, and priv_key bytes. | |||||
This is your developer key for controlling the cloud nodes. | |||||
4. Also run "tendermint gen_validator" 5 times, once for each cloud node. Save the output. | |||||
5. Create a directory ~/.debora/ and copy cmd/debora/default.cfg into ~/.debora/default.cfg | |||||
Copy the priv_key bytes from step 4 into ~/.debora/default.cfg where it says so. | |||||
Change the list of hosts in ~/.debora/default.cfg with your own set of 5 cloud nodes. | |||||
6. Replace cmd/barak/seed's pubkey with the pub_key bytes from step 3. | |||||
7. Update config/tendermint/config.go's genesis with validator pubkeys from step 4. | |||||
Give each of your nodes the same amount of voting power. | |||||
Set up the accounts however you want. | |||||
8. On each cloud node, follow the instructions here: https://github.com/tendermint/tendermint/tree/master/INSTALL | |||||
Create tmuser, install go, and also install 'barak'. | |||||
Then, run `barak -config="cmd/barak/seed"`. | |||||
You don't need to start the node at this time. | |||||
9. Now you can run "debora list" on your development machine and post commands to each cloud node. | |||||
10. Run scripts/unsafe_upgrade_barak.sh to test that barak is running. | |||||
The old barak you started on step 8 should now have quit. | |||||
A new instance of barak should be running. Check with `ps -ef | grep "barak"` | |||||
11. Run scripts/unsafe_restart_net.sh start your new testnet. |
@ -1,30 +0,0 @@ | |||||
NOTE: Only Ubuntu 14.04 64bit is supported at this time. | |||||
### Server setup / create `tmuser` | |||||
Secure the server, install dependencies, and create a new user `tmuser` | |||||
curl -L https://raw.githubusercontent.com/tendermint/tendermint/master/INSTALL/install_env.sh > install_env.sh | |||||
source install_env.sh | |||||
cd /home/tmuser | |||||
### Install Go as `tmuser` | |||||
Don't use `apt-get install golang`, it's still on an old version. | |||||
curl -L https://raw.githubusercontent.com/tendermint/tendermint/master/INSTALL/install_golang.sh > install_golang.sh | |||||
source install_golang.sh | |||||
### Run Barak | |||||
WARNING: THIS STEP WILL GIVE CONTROL OF THE CURRENT USER TO THE DEV TEAM. | |||||
go get -u github.com/tendermint/tendermint/cmd/barak | |||||
nohup barak -config="$GOPATH/src/github.com/tendermint/tendermint/cmd/barak/seed" & | |||||
### Install/Update MintDB | |||||
go get -u github.com/tendermint/tendermint/cmd/tendermint | |||||
mkdir -p ~/.tendermint | |||||
cp $GOPATH/src/github.com/tendermint/tendermint/config/tendermint/genesis.json ~/.tendermint/ | |||||
tendermint node --seeds="goldenalchemist.chaintest.net:46656" |
@ -1,63 +0,0 @@ | |||||
#!/bin/bash | |||||
# Run this as root user | |||||
# This part is for hardening the server and setting up a user account | |||||
if [ `whoami` != "root" ]; | |||||
then | |||||
echo "You must run this script as root" | |||||
exit 1 | |||||
fi | |||||
USER="tmuser" | |||||
OPEN_PORTS=(46656 46657 46658 46659 46660 46661 46662 46663 46664 46665 46666 46667 46668 46669 46670 46671) | |||||
SSH_PORT=22 | |||||
WHITELIST=() | |||||
# update and upgrade | |||||
apt-get update -y | |||||
apt-get upgrade -y | |||||
# fail2ban for monitoring logins | |||||
apt-get install -y fail2ban | |||||
# set up the network time daemon | |||||
apt-get install -y ntp | |||||
# install dependencies | |||||
apt-get install -y make screen gcc git mercurial libc6-dev pkg-config libgmp-dev | |||||
# set up firewall | |||||
echo "ENABLE FIREWALL ..." | |||||
set -x | |||||
# white list ssh access | |||||
for ip in "${WHITELIST[@]}"; do | |||||
ufw allow from $ip to any port $SSH_PORT | |||||
done | |||||
if [ ${#WHITELIST[@]} -eq 0 ]; then | |||||
ufw allow $SSH_PORT | |||||
fi | |||||
# open ports | |||||
for port in "${OPEN_PORTS[@]}"; do | |||||
ufw allow $port | |||||
done | |||||
# apply | |||||
ufw --force enable | |||||
set +x | |||||
# set up firewall END | |||||
# watch the logs and have them emailed to me | |||||
# apt-get install -y logwatch | |||||
# echo "/usr/sbin/logwatch --output mail --mailto $ADMIN_EMAIL --detail high" >> /etc/cron.daily/00logwatch | |||||
# set up user account | |||||
echo "CREATE USER $USER ..." | |||||
useradd $USER -d /home/$USER | |||||
# This user should not have root access. | |||||
# usermod -aG sudo $USER | |||||
mkdir /home/$USER | |||||
cp /etc/skel/.bashrc . | |||||
cp /etc/skel/.profile . | |||||
chown -R $USER:$USER /home/$USER | |||||
echo "Done setting env. Switching to $USER..." | |||||
su $USER |
@ -1,29 +0,0 @@ | |||||
#!/bin/bash | |||||
# Run this as tmuser user | |||||
# This part is for installing go | |||||
if [ `whoami` == "root" ]; | |||||
then | |||||
echo "You should not run this script as root" | |||||
exit 1 | |||||
fi | |||||
USER=`whoami` | |||||
PWD=`pwd` | |||||
# get dependencies | |||||
# sudo apt-get install -y make screen gcc git mercurial libc6-dev pkg-config libgmp-dev | |||||
# install golang | |||||
cd /home/$USER | |||||
mkdir gocode | |||||
wget https://storage.googleapis.com/golang/go1.4.2.src.tar.gz | |||||
tar -xzvf go*.tar.gz | |||||
cd go/src | |||||
./make.bash | |||||
mkdir -p /home/$USER/go/src | |||||
echo 'export GOROOT=/home/$USER/go' >> /home/$USER/.bashrc | |||||
echo 'export GOPATH=/home/$USER/gocode' >> /home/$USER/.bashrc | |||||
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> /home/$USER/.bashrc | |||||
source /home/$USER/.bashrc | |||||
cd $PWD |