Setting up a working P2Pool mostly consists of:

Running a Bitcoin node (Bitcoin-Qt or bitcoind).

Running P2Pool on the same machine (will fetch blocks data from bitcoind).

Running Bitcoin miners (will fetch work from P2Pool).

1. Setup Bitcoin-Qt or bitcoind

Download and install Bitcoin-Qt or bitcoind. Initial synchronization will likely take more than a day to complete. For this reason, it is generally a good idea to complete this step in advance.

Insert the following text into bitcoin.conf and restart Bitcoin-Qt or bitcoind:

server=1 rpcuser=bitcoinrpc rpcpassword= (random data)

Example for Windows bitcoin.conf can be found in the following folder: %AppData%\Bitcoin

Example for Linux bitcoin.conf can be found in the following folder: ~/.bitcoin

2. Run P2Pool

Download P2Pool and execute run_p2pool.exe (Windows) or 'python run_p2pool.py' (Linux/OS X/source).

P2Pool will start downloading the sharechain, displaying sections like this occasionally:

2014-01-09 17:15:45.075550 P2Pool: 0 shares in chain (0 verified/3133 total) Peers: 5 (0 incoming) 2014-01-09 17:15:45.075662 Local: 0H/s in last 0.0 seconds Local dead on arrival: ??? Expected time to share: ???

Within a few minutes, it should start showing sections like this (notice the pool hashrate - Pool: 115TH/s - is now shown), indicating that the sharechain has finished downloading. As you can see from the timestamps, here it took about one and a half minutes. It will vary depending on your CPU speed and Internet bandwidth.

2014-01-09 17:16:49.525335 P2Pool: 8698 shares in chain (57 verified/8698 total) Peers: 5 (0 incoming) 2014-01-09 17:16:49.525422 Local: 0H/s in last 0.0 seconds Local dead on arrival: ??? Expected time to share: ??? 2014-01-09 17:16:49.525476 Shares: 0 (0 orphan, 0 dead) Stale rate: ??? Efficiency: ??? Current payout: 0.0000 BTC 2014-01-09 17:16:49.525510 Pool: 115TH/s Stale rate: 12.4% Expected time to block: 14.7 hours

3. Run miners

Just point miners to http://HOST:9332/ with HOST being the IP address of the computer running P2Pool. The username can be your payout Bitcoin address or anything that describes the miner if you prefer to mine into your Bitcoin-Qt/bitcoind wallet. Use any password; it is ignored by P2Pool. When mining on the same machine, you can use 127.0.0.1 as the P2Pool host.

ButterflyLabs EasyMiner Easyminer can be downloaded here.

bfgminer Linux Downloading and building bfgminer from the terminal: sudo apt-get install git build-essential autoconf automake libtool pkg-config libcurl4-gnutls-dev libjansson-dev uthash-dev libncursesw5-dev libudev-dev libusb-1.0-0-dev libevent-dev libmicrohttpd-dev git clone git://github.com/luke-jr/bfgminer.git cd bfgminer ./autogen.sh ./configure make Running bfgminer from the terminal: ./bfgminer -o http://127.0.0.1:9332 -u user -p password Windows Binaries for Windows (32bit and 64bit) can be downloaded here. You can run bfgminer from the command line: bfgminer.exe -o http://127.0.0.1:9332 -u user -p password Or you can create a preconfigured shortcut on the desktop:

cgminer cgminer --url http://127.0.0.1:9332/ --userpass cgminer:password

Bitfury / Megabigpower See the last question of this FAQ.

4. Watch

Unless your miners have Bitcoin addresses as usernames, payouts will go to Bitcoin-Qt/bitcoind's wallet. You can look at P2Pool's web interface, which has statistics and graphs, by going to http://YOUR_P2POOL_HOST:9332/ in a browser - http://127.0.0.1:9332/ if you're looking at this tutorial on the same host that P2Pool is running.

Once your P2Pool setup is working, make sure to subscribe to the P2Pool notifications mailing list to receive urgent pool status updates.