Running Skywire on CentOS 7 using Hyper-V

Following Skywire instruction from offical github repository:

https://github.com/skycoin/skywire

First download CentOS 7.4 (1708) Minimal .iso image from:

http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso

How To on YouTube

Run Hyper-V Manager, if not found you have to enable Hyper-V in Windows Features (Control Panel, Programs and Features) windows-features-hyper-v

Create new Virtual Machine:

  • Generation 1
  • Memory Size: 2048 MB
  • Network Default Switch or select your custom virtual network switch
  • Disk Size: 32 GB
  • Select Image file (.iso) from your hard drive

Start Virtual Machine. Install CentOS 7 following on screen instructions. After installation finishes eject .iso image and reboot.

Login with root credentials and check current IP address with command:

$ ip a l

Run commands to update system and install required tools (like git)

$ yum update
$ yum install bash-completion ntp git tmux net-tools
$ ip a l
$ systemctl enable ntpd
$ systemctl start ntpd
$ ip a l
$ reboot

Download and install GO language

$ curl https://dl.google.com/go/go1.10.linux-amd64.tar.gz -o go1.10.linux-amd64.tar.gz
$ tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz
$ export PATH=$PATH:/usr/local/go/bin
$ export GOPATH=$HOME/go
$ export GOBIN=$GOPATH/bin

Install Skywire

Create new folder, checkout git repository and run go installation.

$ mkdir -p $GOPATH/src/github.com/skycoin
$ cd $GOPATH/src/github.com/skycoin
$ git clone https://github.com/skycoin/skywire.git
$ cd $GOPATH/src/github.com/skycoin/skywire/cmd
$ go install ./...

Run Skywire

I am using tmux to run more terminals in single screen and it enables to detach terminals.

Ctrl+B " - creates new terminal by splitting horizontally
Ctrl+B Arrow Key - switch between terminals
Ctrl+B D - detach current session (to attach back to session run command: tmux a)
$ cd $GOPATH/bin
$ tmux
$ ./manager -web-dir ${GOPATH}/src/github.com/skycoin/skywire/static/skywire-manager
$ ./node -connect-manager -manager-address :5998 -manager-web :8000 -discovery-address discovery.skycoin.net:5999-034b1cd4ebad163e457fb805b3ba43779958bba49f2c5e1e8b062482904bacdb68 -address :5000 -web-port :6001

CentOS is running firewall by default so we have to add ports to enable access from local network.

$ firewall-cmd --add-port=8000/tcp
success
$ firewall-cmd --add-port=8000/tcp --permanent
success

GO path settings

Edit file and add line $ vi /etc/profile.d/path.sh

export PATH=$PATH:/usr/local/go/bin

Or add lines in $ vi ~/.bash_profile

export GOBIN="$HOME/projects/bin"
export GOPATH="$HOME/projects/src"

if Go was not installed in the /usr/local directory, then define the GOROOT variable as well.

$ vi ~/.bash_profile

export GOROOT="/path/to/go"