Build a P2Pool Node

p2pool logoP2Pool is a decentralized mining pool that consists of a network of peer-to-peer miner nodes that anyone can mine or expand.

This guide will show you how to install the P2Pool software, create your own P2Pool node, and join it to the P2Pool network.

We will be using a fork of the original Bitcoin p2pool software, called zen2pool, that has been optimized for scrypt- and progressive-N scrypt-based altcoins. If you would like to install the Bitcoin specific node software, then use forrestv's version (instead of zen2pool) and substitute references to 'zen2pool' with p2pool throughout the rest of this guide.

If you want try P2Pool by just mining at an existing pool, rather than installing and configuring your own node, the see the Test Drive P2Pool guide.

Requirements

This installation process is illustrated with Ubuntu Linux and Execoin, although the latter can be substituted with any other coin such as Anoncoin or Litecoin. It is assumed that you already have a local instance of the coin daemon running with the following parameters:

$ ./execoind -daemon -server -rpcallowip=127.0.0.1

The P2Pool software will later connect to execoind in server mode and will relay mining software RPC communication via the localhost.

If you don't have the execoind daemon, then you can fetch it from GitHub, compile and start with the command above. Execoin source code is available from GitHub with:

$ git clone https://github.com/execoin/execoin.git

 

Install Linux package dependencies:

$ sudo apt-get install git python-zope.interface python-twisted python-twisted-web

Now clone the zen2pool source code from GitHub to a local directory (git will automatically create the source directory):

$ git clone https://github.com/venzen/zen2pool.git

Change into the directory and have a look around:

$ cd ./zen2pool
$ ls -l

Build the Scrypt modules

Both the generic and progressive-N scrypt modules are included in the py_modules directory. Let's build both while we're at it:

cd py_modules

cd litecoin_scrypt
sudo python setup.py install

cd ../vertcoin_scrypt
sudo python setup.py install

Start the node

Ensure execoind is running as described above and that a RPC username and password are set in the execoin.conf file that execoind would have prompted you to create upon the first run:

$ cat ~/.execoin/execoin.conf
rpcuser=execoinrpc
rpcpassword=<longrandomcharacterpassword>

Make sure you're in the zen2pool application root directory. We're going to start zen2pool with the following parameter:

--net execoin_zen

--net tells zen2pool to use the 'execoin_zen'  definition listed in the file p2pool/networks.py

Execute the complete command:

$ python run_zen2pool.py  --net execoin_zen

P2Pool node gardenYou should see zen2pool start up and connect to execoind as well as the wider P2Pool network.

If zen2pool complains about "bitcoind taking a long time" - this is a generic message warning that zen2pool cannot make a connection to the coind daemon. Make sure execoind is running and that you are not passing it a -maxconnections= parameter. Stop and restart zen2pool.

If you see the message "Success" and lots of messages with "???" declarations, don't worry, this is normal - zen2pool is bootstrapping the sharechain, and we have yet to point a miner at this node. Bootstrapping can take anywhere from a few minutes to an hour.

Web Statistics

p2pool web interface

Test your zen2pool web interface by pointing your browser at

https://127.0.0.1:9173

Alternatively, if you're running zen2pool on a remote server/VPS, substitute 127.0.0.1 with the remote IP address.

Once the sharechain has finished downloading, stop and restart zen2pool. At startup, it will display its progress loading the sharechain from its local disk cache and then indicate that it's ready for mining by displaying empty local P2Pool stats but a non-zero global hash rate. Startup your mining software and once it has submitted work for about an hour, the statics will be meaningfully populated, and you can monitor your mining in relation to the wider P2Pool network as well as other useful metrics.

Mining your P2Pool Node

You now have the option to point your mining software at your P2Pool node, as well as invite other people to mine the pool.

See the Mining P2Pool article for mining instructions and configuration settings.

 

This article is protected by copyright laws and is owned by CCN Markets.

About the author

Avatar
Venzen Khaosan

Market analyst and Open source developer with a keen interest in blockchain technology, consensus mechanisms and the decentralizing effect.

He has found a solution to the PKI mechanism. Email me to discuss.

Do NOT follow this link or you will be banned from the site!