Get Peercoin full node on raspberry pi in 30 minutes

#1

heh, thanks to Tea42 for pioneering the raspberry pi guide. I’m writing an alternative guide to set up peercoin full node on pi in a lighter path.

Requirement

  • no need for physical keyboard / hmdi display or mouse, everything will be done over ssh
  • need network cable, or some kinds of network device
  • need to have a working dhcp, of course
  • need to be able to forward 9901 port

Step 1

Step 2

  • Look for the ip of your pi. You may use nmap if available ( for example: nmap -sP 192.168.1.1/24 ), or look it up on your router control panel.
  • ssh pi@your_ip
  • (the default password is raspberry, yes you should change it)

Step 3

  • run the following
sudo update-rc.d lightdm disable 2
sudo /usr/bin/raspi-config --expand-rootfs
sudo rm -f /etc/profile.d/raspi-config.sh
sudo shutdown -r now

Step 4

  • it should takes 30 secs to reboot, once it comes back, ssh back to it
  • execute the following. It should take 20 mins, more or less, depending on your internet connection.
sudo apt-get -y --purge remove midori netsurf-common netsurf-gtk penguinspuzzle python-pygame scratch timidity wolfram-engine squeak-vm squeak-plugins scratch dillo idle idle3 idle-python2.7 idle-python3.2 python-numpy python-support

sudo apt-get -y update
sudo apt-get -y upgrade

sudo apt-get -y install tmux ntpdate wget

wget http://romerun.github.io/raspeer/ppcoind.v0.4
wget http://romerun.github.io/raspeer/fullnode_mon.pl
wget http://romerun.github.io/raspeer/fullnode_run

chmod 755 ppcoind.v0.4
chmod 755 fullnode_mon.pl
chmod 755 fullnode_run

mkdir ~/.ppcoin
echo "rpcuser=user" > ~/.ppcoin/ppcoin.conf
echo "rpcpassword=passwd" >> ~/.ppcoin/ppcoin.conf

sudo sh -c "echo \"su - pi -c 'tmux new-session -d'\" >> /etc/rc2.d/S04rc.local"
sudo sh -c "echo \"su - pi -c 'tmux new-window /home/pi/fullnode_run'\" >> /etc/rc2.d/S04rc.local"
sudo sh -c "echo \"su - pi -c 'tmux new-window /home/pi/fullnode_mon.pl'\" >> /etc/rc2.d/S04rc.local"

sudo shutdown -r now

Step 5

  • after it comes back from reboot, ssh back in, and type the following to see if it’s running
./ppcoind.v0.4 getinfo

Step 6

  • on your router control panel
  • configure DHCP to fix the macaddress of the pi to the ip
  • forward port 9901 to the ip

Step 7

  • continue the getinfo until you see the number of connect climbs over 8
  • if it takes more than an hour, you might put some doubt on the port 9901 forwarding

:pbjt: There you have it

Disclaimer

  • This should not be used for minting. Use this for minting.
  • I precompiled the official Peercoin 0.4 (only ppcoind), as it takes quite a long time to finish. The md5sum is: d420ee41caccbb50dfc5a96d465cf26e
  • I don’t have an incentive to put trojans on a bare peercoin full node. You may trust the binary as you wish, otherwise, you can compile it with this script . However, there’s a good chance the checksum of the binary of yours and mine do not match, if the versions of dependencies are not exactly the same.
#2

Great work romerun, thanx ! :clap:

I’ve my Raspberry Pi already set up but will give it a try for v0.5 :wink:

#3

Nice, clean and fast! But aren’t there some dependencies missing for running ppcoind? Or is it only the qt version that needs all those extra libraries?

#4

I linked it statically on compilation, so everything is included.

#5

Do I have to have port 9902 open?

Do I have to have rpc enabled?

#6

No, 9901.
9902 is used for RPC.

edit: ok, actually you do need it as romerun explains :slight_smile:

#7

the only requirement for fullnode is the 9901 port be accessible from the public IP (9902 is for RPC),

but RPC should be enabled on localhost, and denied the access from the outside.

My auto restart script actually requires RPC to query the current public ip, and command it to restart if that changes.

#8

[quote=“romerun, post:7, topic:2425”]the only requirement for fullnode is the 9901 port be accessible from the public IP (9902 is for RPC),

but RPC should be enabled on localhost, and denied the access from the outside.[/quote]

Cool, that’s exactly what I got. Thanks for the help!