Project: Setting up a Litecoin p2pool with merged mining on a Debian virtual server

Part 1: Setting up an LTC node without a wallet:

Start up a new node at Digitalocean:

Important to select Private Networking as this can be helpful connecting additional high speed wallets later

Updating the Linux distro
apt-get update
apt-get dist-upgrade

C++ compilers are memory-hungry. It is recommended to have at least 1 GB of memory available when compiling Litecoin Core. Our solution will need very little resources when it's running so to keep the costs down we'll do this by using a swapfile instead of buying a bigger droplet

dd if=/dev/zero of=/mnt/myswap.swap bs=1M count=4000
mkswap /mnt/myswap.swap
swapon /mnt/myswap.swap

To mount the swapfile automatically after reboots
nano /etc/fstab

Add the following line at the end of the fstab file:
/mnt/myswap.swap none swap sw 0 0

It will look like this:

[ctrl] + O and [enter] to save

[ctrl] + X to exit

Install Required Packages:
apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
apt-get install libboost-all-dev git libminiupnpc-dev redis-server

Adding Berkeley 4.8 will not be necessary this time, as we will compile the Litecoin core without wallet functionality.

A few more packages which will be useful for the p2pool package when that time comes:
apt-get install -y build-essential libboost-all-dev libcurl4-openssl-dev python-zope.interface python-dev python-twisted python-twisted-web git screen

curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
source ~/.profile
nvm install 0.10.25
nvm use 0.10.25

User Setup

Setting up a wallet owner, different from root, then adding it to the sudoers group:

adduser whateveryouwant

You will be asked for a password. This have to be strong as it will be accessible for everyone.

adduser whateveryouwant sudo

now is a good time to reboot before compiling the wallet from the wallet owner user

reboot

Log in again with your new user

git clone https://github.com/litecoin-project/litecoin.git

cd litecoin
sudo ./autogen.sh
sudo ./configure --disable-wallet
sudo make
sudo make install

The compilation will take a long time with this small droplet and swapfile. It's safe to grab a coffee after the "sudo make" command.

"sudo make install" can be omitted, but it makes litecoind available from everywhere without going to ~/litecoin/src/

Go back home and try to start Litecoin:

cd ~ litecoind

It will come back with an error stating that you need a username and password for "rpcuser". I usually copy the two lines suggesting username and password to paste it into the litecoin.config file:

nano -w .litecoin/litecoin.conf

listen=1
daemon=1
server=1
disablewallet=1
rpcallowip=127.0.0.1
maxconnections=15

You can also add extra nodes that will help your node to find the blockchain. If you have other wallets in your private network it's perfect to add them here as they will have low latency and help you securing blocks that you find.

Start Litecoin again:

litecoind

You can monitor that the litecoin server is still working by using "top"

Exit with Q

To see how litecoin is progressing on the blockchain:

litecoin-cli getinfo

It's a good idea to take a snapshot of the node when the Litecoin blockchain has finished downloading. This is absolutely free and will give you a kickstart if you want to set up more nodes or if you mess up the server when trying to add a pool software or other coins.

References:

https://github.com/litecoin-project/litecoin/blob/master-0.10/doc/build-unix.md

http://blockgen.net/setup-your-own-mining-pool/