Notice this line:
RPC settings | Notice how this ISN'T port number 8332 this is becuase the same port number should not becuase inconjunction with the JSON RPC port other wise you'll get 500 errors
yea, that's confusing. Xenland you should remove that line.
I just set up a new centos server. It is working. The config files:
Here's my bitcoin.conf
# bitcoin.conf configuration file. Lines beginning with # are comments.
# Network-related settings:
# Run on the test network instead of the real bitcoin network.
#testnet=1
# Connect via a socks4 proxy
#proxy=127.0.0.1:9050
##############################################################
## Quick Primer on addnode vs connect ##
## Let's say for instance you use addnode=4.2.2.4 ##
## addnode will connect you to and tell you about the ##
## nodes connected to 4.2.2.4. In addition it will tell ##
## the other nodes connected to it that you exist so ##
## they can connect to you. ##
## connect will not do the above when you 'connect' to it. ##
## It will *only* connect you to 4.2.2.4 and no one else.##
## ##
## So if you're behind a firewall, or have other problems ##
## finding nodes, add some using 'addnode'. ##
## ##
## If you want to stay private, use 'connect' to only ##
## connect to "trusted" nodes. ##
## ##
## If you run multiple nodes on a LAN, there's no need for ##
## all of them to open lots of connections. Instead ##
## 'connect' them all to one node that is port forwarded ##
## and has lots of connections. ##
## Thanks goes to [Noodle] on Freenode. ##
##############################################################
# Use as many addnode= settings as you like to connect to specific peers
#addnode=10.0.0.2:8333
# ... or use as many connect= settings as you like to connect ONLY
# to specific peers:
#connect=10.0.0.1:8333
# Do not use Internet Relay Chat (irc.lfnet.org #bitcoin channel) to
# find other peers.
#noirc=1
# Maximum number of inbound+outbound connections.
#maxconnections=
# JSON-RPC options (for controlling a running Bitcoin/bitcoind process)
# server=1 tells Bitcoin to accept JSON-RPC commands.
server=1
# You must set rpcuser and rpcpassword to secure the JSON-RPC api
#rpcuser=Ulysseys
#rpcpassword=YourSuperGreatPasswordNumber_385593
rpcuser=masterusername
rpcpassword=masteruserpassword
# How many seconds bitcoin will wait for a complete RPC HTTP request.
# after the HTTP connection is established.
rpctimeout=30
# By default, only RPC connections from localhost are allowed. Specify
# as many rpcallowip= settings as you like to allow connections from
# other hosts (and you may use * as a wildcard character):
#rpcallowip=10.1.1.34
#rpcallowip=192.168.1.*
rpcallowip=*
# Listen for RPC connections on this TCP port:
rpcport=8332
# You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind
# running on another host using this option:
rpcconnect=127.0.0.1
# Use Secure Sockets Layer (also known as TLS or HTTPS) to communicate
# with Bitcoin -server or bitcoind
#rpcssl=1
# OpenSSL settings used when rpcssl=1
rpcsslciphers=TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH
rpcsslcertificatechainfile=server.cert
rpcsslprivatekeyfile=server.pem
# Miscellaneous options
# Set gen=1 to attempt to generate bitcoins
gen=0
# Use SSE instructions to try to generate bitcoins faster.
#4way=1
# Pre-generate this many public/private key pairs, so wallet backups will be valid for
# both prior transactions and several dozen future transactions.
keypool=100
# Pay an optional transaction fee every time you send bitcoins. Transactions with fees
# are more likely than free transactions to be included in generated blocks, so may
# be validated sooner.
paytxfee=0.00
# Allow direct connections for the 'pay via IP address' feature.
#allowreceivebyip=1
# User interface options
# Start Bitcoin minimized
#min=1
# Minimize to the system tray
#minimizetotray=1
Here's my server.json:
{
# network ports
"listen" : [
# binary protocol (default), port 8342
{ "port" : 8342 },
# HTTP JSON-RPC protocol, port 8341
{ "port" : 8341, "protocol" : "http-json" },
# HTTP JSON-RPC protocol, port 8344,
# with trusted proxy appserver.example.com forwarding
# requests to us
{ "port" : 8344, "protocol" : "http-json",
"proxy" : "mypublicipaddress" },
# binary protocol, localhost-only port 8338
{ "host" : "127.0.0.1", "port" : 8338, "protocol" : "binary" }
],
# database settings
"database" : {
"engine" : "mysql",
"host" : "localhost",
"port" : 3306,
"name" : "nameofmydatabase",
"username" : "remotedatabaseusername",
"password" : "remotedatabasepassword",
"sharelog" : true,
"stmt.pwdb":"SELECT `password` FROM `pool_worker` WHERE `username` = ?",
"stmt.sharelog":"INSERT INTO shares (rem_host, username, our_result, upstream_result, reason, solution) VALUES (?, ?, ?, ?, ?, ?)
"
},
# cache settings
"memcached" : {
"servers" : [
{ "host" : "127.0.0.1", "port" : 11211 }
]
},
"pid" : "/tmp/pushpoold.pid",
# overrides local hostname detection
# "forcehost" : "localhost.localdomain",
"log.requests" : "/tmp/request.log",
"log.shares" : "/tmp/shares.log",
# the server assumes longpolling (w/ SIGUSR1 called for each blk)
"longpoll.disable" : false,
# length of time to cache username/password credentials, in seconds
"auth.cred_cache.expire" : 75,
# RPC settings | Notice how this ISN'T port number 8332 this is becuase the same port number should not becuase inconjunction with the JSON RPC port other wise you'll get 500 errors
"rpc.url" : "http://mypublicipaddress:8332/",
"rpc.user" : "masterusername",
"rpc.pass" : "masteruserpassword",
# rewrite returned 'target' to difficulty-1?
"rpc.target.rewrite" : true
}
To test to see if it works I start with guiminer. I point guiminer at the bitcoind port. The console reads:
Running command: poclbm.exe --user=masterusername --pass=masteruserpassword -o mypublicipaddress -p 8332 --device=0 --platform=0 --verbose
and it starts to download the block chain. So I know bitcoind is working and the correct port (8332) is open in my firewall.
now since I'm using pushpoold I can actually close that port in my firewall. Pushpoold, running on the same machine (127.0.0.1) doesn't need to go
through the firewall. In server.json I set the pushpoold public address to 8334 in this line:
# HTTP JSON-RPC protocol, port 8344,
# with trusted proxy appserver.example.com forwarding
# requests to us
{ "port" : 8344, "protocol" : "http-json",
"proxy" : "mypublicipaddress" },
#mypublicaddress is the public ip address of your machine
In order for pushpoold to work I need to make sure I have a user in mysql, in my case I use:
user: test
pass: x
so running on port 8344 my console shows:
Running command: poclbm.exe --user=test --pass=x -o mypiblicipaddress -p 8344 --device=0 --platform=0 --verbose
The only port you need to open in your firewall is 8344 (8344:tcp)
This setup works for me under Centos 5.6.