Merge pull request #297 from tendermint/docs
remove INSTALL dir, add INSTALL.md, update DOCKER
This commit is contained in:
commit
3e29f2bdc2
|
@ -1,5 +1,16 @@
|
|||
# Docker
|
||||
|
||||
Tendermint uses docker for deployment of testnets via the [mintnet](github.com/tendermint/mintnet) tool.
|
||||
|
||||
For faster development iterations (ie. to avoid docker builds),
|
||||
the dockerfile just sets up the OS, and tendermint is fetched/installed at runtime.
|
||||
|
||||
For the deterministic docker builds used in testing, see the [tests directory](https://github.com/tendermint/tendermint/tree/master/test)
|
||||
|
||||
# Build and run a docker image and container
|
||||
|
||||
These are notes for the dev team.
|
||||
|
||||
```
|
||||
# Build base Docker image
|
||||
# Make sure ./run.sh exists.
|
||||
|
|
|
@ -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
|
|
@ -20,4 +20,5 @@ func init_files() {
|
|||
|
||||
genDoc.SaveAs(config.GetString("genesis_file"))
|
||||
|
||||
log.Notice("Initialized tendermint", "genesis", config.GetString("genesis_file"), "priv_validator", config.GetString("priv_validator_file"))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue