alt text
tip: The pi3 slows to a crawl while syncing.

I am starting by installing Raspbian Stretch Lite headless with wifi.
https://www.raspberrypi.org/downloads/raspbian/
https://desertbot.io/blog/headless-raspberry-pi-3-bplus-ssh-wifi-setup

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y build-essential
sudo apt install screen
sudo apt install git -y

Install golang 1.10

wget https://storage.googleapis.com/golang/go1.10.linux-armv6l.tar.gz
sudo tar -C /usr/local -xvf go1.10.linux-armv6l.tar.gz
cat >> ~/.bashrc << 'EOF'
export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
EOF
source ~/.bashrc
go version

Swap File

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Clone go-egem and build.

git clone https://github.com/TeamEGEM/go-egem.git
cd ~/go-egem && make egem
mkdir -p /home/pi/live-net/egem/
cd ~/live-net/egem/
wget https://raw.githubusercontent.com/TeamEGEM/EGEM-Bootnodes/master/static-nodes.json

Start and sync go-egem
note: I get this error "ssdp: got unexpected search target result "upnp:rootdevice"" because I do not have UPNP turned on, on my router.

/home/pi/go-egem/build/bin/egem --datadir ~/live-net/ --rpc --maxpeers 100

if UPNP is not on open ports 8545, 30666, 30661 on your router to your pi3 IP address, and stick YOURIP (modem IP, not internal network IP) into below.

/home/pi/go-egem/build/bin/egem --datadir ~/live-net/ --rpc --maxpeers 100 --nat=extip:YOURIP

Clone Network Intelligence

cd ~/
sudo apt-get install npm -y
git clone https://github.com/TeamEGEM/egem-net-intelligence-api
cd egem-net-intelligence-api
nano app.json

Change instance name and contact details.

Install PM2 using yarn. Anyone want to explain how to do this using npm?

sudo apt remove cmdtest
sudo apt remove yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
sudo apt-get install --no-install-recommends yarn
yarn --version

Stay in the egem-net-intelligence-api directory.

cd ~/egem-net-intelligence-api
sudo yarn install
sudo yarn global add pm2

Once that's done run pm2

pm2 start app.json

To check pm2 status.

pm2 status

Check at

https://network.egem.io/

To run on startup.

crontab -e

I choose option 2 and use nano as the text editor, add line at the end.

@reboot sleep 30 && /home/pi/go-egem/build/bin/egem --datadir ~/live-net/ --rpc --maxpeers 100 >/dev/null 2>&1

Then run

pm2 startup

copy and paste the line it gives you, then

pm2 start ~/egem-net-intelligence-api/app.json
pm2 save

Reboot and cross fingers.

sudo reboot