Pages:
Author

Topic: pushpool - open source pool software - page 11. (Read 120205 times)

member
Activity: 98
Merit: 13
May 18, 2011, 10:55:41 AM
#20
So let me get this straight...

pushpool is simply a backend software that determines how many blocks a certain username has mined and stores that information on a mysql database?

pushpool proxies between bitcoind and the mining clients.  It gets work from bitcoind, and passes it to mining clients.  Mining clients submit solutions.  pushpool checks the solutions, credits the client if correct, logs the solution, and passes the solution on to bitcoind if it is of sufficient difficulty.

Quote
Can you show me an example of what the mysql database structure is you are working with in pushpool? What values is it keeping track of exactly?

These are the two default mysql statements used.  You may change these in the config file via "stmt.pwdb" and "stmt.sharelog":
Code:
#define DEFAULT_STMT_PWDB \
        "SELECT password FROM pool_worker WHERE username = ?"
#define DEFAULT_STMT_SHARELOG \
        "INSERT INTO shares (rem_host, username, our_result, "          \
        "                    upstream_result, reason, solution) "       \
        "VALUES(?,?,?,?,?,?)"

It is up to the pool operator to design their own database, and hook it into pushpool.  pushpool is intentionally very flexible about this.
full member
Activity: 126
Merit: 100
May 18, 2011, 04:30:02 AM
#19
Xf2, i am constantly getting json_rpc_call failed on cpu-miner...i don't have even the slightest idea where the problem is.

On pushpool i get an error HTTP request failed: The requested URL returner error 401. I assume 401 means wrong username and pass? But they are correct lol.
sr. member
Activity: 280
Merit: 252
May 18, 2011, 03:51:51 AM
#18
So let me get this straight...

pushpool is simply a backend software that determines how many blocks a certain username has mined and stores that information on a mysql database?

Can you show me an example of what the mysql database structure is you are working with in pushpool? What values is it keeping track of exactly?

member
Activity: 98
Merit: 13
May 18, 2011, 03:04:18 AM
#17
I'm curious as to what you intend for the push binary protocol. It hasn't really gotten much traction though it looks like a fine implementation. Since Phoenix now supports MMP (Multiminer), would you consider patches that added MMP support to Pushpool?

Patches welcome, it's an open source project.

member
Activity: 98
Merit: 13
May 18, 2011, 03:03:56 AM
#16
Another question, how can I see the total hash per sec that my pool is doing ?

Look at your share log, for the rate of incoming solutions.

full member
Activity: 140
Merit: 100
May 18, 2011, 01:34:35 AM
#15
I'm curious as to what you intend for the push binary protocol. It hasn't really gotten much traction though it looks like a fine implementation. Since Phoenix now supports MMP (Multiminer), would you consider patches that added MMP support to Pushpool?
newbie
Activity: 14
Merit: 0
May 17, 2011, 07:35:41 PM
#14
On bitcoin.conf (where my bitcoind server runs), do I need gen=0 or 1 ?

I guess generate should be 0 on server, right ?

Generation on bitcoind should be disabled.  That is the slow CPU mining.

Quote
# ./minerd -a sse2_64 -t 20 --url http://my.pushpool.server:8337 --userpass test:test
[2011-05-17 16:58:32] JSON-RPC call failed: {
   "message": "upstream RPC error",
   "code": -2
}

bitcoind is your upstream.  pushpool is having trouble communicating with bitcoind.


Ok, I managed to get it to work.

Another question, how can I see the total hash per sec that my pool is doing ?
bitcoind getinfo returns 0 hashespersec, even when I have two CPU mining @ 40Mhash/s at the same time.
member
Activity: 98
Merit: 13
May 17, 2011, 06:52:45 PM
#13
On bitcoin.conf (where my bitcoind server runs), do I need gen=0 or 1 ?

I guess generate should be 0 on server, right ?

Generation on bitcoind should be disabled.  That is the slow CPU mining.

Quote
# ./minerd -a sse2_64 -t 20 --url http://my.pushpool.server:8337 --userpass test:test
[2011-05-17 16:58:32] JSON-RPC call failed: {
   "message": "upstream RPC error",
   "code": -2
}

bitcoind is your upstream.  pushpool is having trouble communicating with bitcoind.

member
Activity: 98
Merit: 13
May 17, 2011, 06:51:17 PM
#12
There is only one:  bitcoind, the official bitcoin client.
What about this one: http://forum.bitcoin.org/index.php?topic=1458.0

That's an unmaintained fork of the official client, using a wholly non-standard and not-supported-anywhere-but-there protocol.

newbie
Activity: 14
Merit: 0
May 17, 2011, 06:00:25 PM
#11
On bitcoin.conf (where my bitcoind server runs), do I need gen=0 or 1 ?

I guess generate should be 0 on server, right ?
Because I don't need the server to be generating coins, just 'serving' blocks.

Another Q:

# ./minerd -a sse2_64 -t 20 --url http://my.pushpool.server:8337 --userpass test:test
[2011-05-17 16:58:32] JSON-RPC call failed: {
   "message": "upstream RPC error",
   "code": -2
}
[2011-05-17 16:58:32] Long-polling activated for http://my.pushpool.server:8337/LP
[2011-05-17 16:58:32] json_rpc_call failed, retry after 30 seconds

Any idea why's that happening ?
hero member
Activity: 714
Merit: 500
May 17, 2011, 05:56:58 PM
#10
Well, for an example.

What should be there instead of the question mark?

Quote
"SELECT password FROM pool_worker WHERE username = ?"

I can't say for sure because I only found out about pushpool something like five seconds ago, but I'm guessing you don't have to mess with that line. The question mark is just a marker for a variable in a prepared statement.
newbie
Activity: 14
Merit: 0
May 17, 2011, 05:41:15 PM
#9
So, what bitcoin server is the best to be used with pushpool ?

There is only one:  bitcoind, the official bitcoin client.


What about this one: http://forum.bitcoin.org/index.php?topic=1458.0
full member
Activity: 126
Merit: 100
May 17, 2011, 05:19:36 PM
#8
Well, for an example.

What should be there instead of the question mark?

Quote
"SELECT password FROM pool_worker WHERE username = ?"
member
Activity: 98
Merit: 13
May 17, 2011, 05:14:58 PM
#7
Any idea what to write here? Lots of stuff and i am still banging my head on the listening part

The question is too vague.  It depends entirely on your needs.

More generally, if you are unaware of the role of bitcoind and how block generation works, you should review many pages on the wiki before running a pool server.

full member
Activity: 126
Merit: 100
May 17, 2011, 05:08:39 PM
#6
Then let us start with configuring.

Quote
{
   # network ports
   "listen" : [
      # binary protocol (default), port 8336
      { "port" : 8336 },

      # HTTP JSON-RPC protocol, port 8337
      { "port" : 8337, "protocol" : "http-json" },

      # HTTP JSON-RPC protocol, port 8339,
      # with trusted proxy appserver.example.com forwarding
      # requests to us
      { "port" : 8337, "protocol" : "http-json",
        "proxy" : "appserver.example.com" },

      # binary protocol, localhost-only port 8338
      { "host" : "127.0.0.1", "port" : 8338, "protocol" : "binary" }
   ],

   # database settings
   "database" : {
      "engine" : "sqlite3",
      "name" : "/tmp/data.sqlite",
      "stmt.pwdb" :
        "SELECT password FROM pool_worker WHERE username = ?"

      # ... or ...

      "engine" : "mysql",

      # 'host' defaults to localhost, if not specified
      "host" : "mysql.example.com",

      # 'port' uses proper default port for the DB engine,
      # if not specified
      "port" : 12121,

      "name" : "mydatabasename",
      "username" : "myuser",
      "password" : "mypass",

      "stmt.pwdb" :
        "SELECT password FROM pool_worker WHERE username = ?"

      # ... or ...

      "engine" : "postgresql",

      "host" : "db.example.com",

      "port" : 12121,

      "name" : "mydatabasename",
      "username" : "myuser",
      "password" : "mypass",

      "stmt.pwdb" :
        "SELECT password FROM pool_worker WHERE username = $1"
   },

   # 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
   "rpc.url" : "http://127.0.0.1:8332/",
   "rpc.user" : "myusername",
   "rpc.pass" : "mypassword",

   # rewrite returned 'target' to difficulty-1?
   "rpc.target.rewrite" : true
}

Any idea what to write here? Lots of stuff and i am still banging my head on the listening part

EDIT: If someone has a working config file, do share.
member
Activity: 98
Merit: 13
May 17, 2011, 05:07:38 PM
#5
So, what bitcoin server is the best to be used with pushpool ?

There is only one:  bitcoind, the official bitcoin client.

member
Activity: 98
Merit: 13
May 17, 2011, 05:07:11 PM
#4
When users earn btc...where to they come from when they request payout? If it's a wait for 100 blocks confirmation thing or when it's instant.

Up to the pool operator.  The bitcoin network requires 120 confirmations, before payout of a generated block.

Quote
How does one define the formula where the earned 50btc are split between users?

Up to the pool operator.

newbie
Activity: 14
Merit: 0
May 17, 2011, 04:46:08 PM
#3
So, what bitcoin server is the best to be used with pushpool ?

I had problems compiling pushpool on Debian, but it's working ok on CentOS.
full member
Activity: 126
Merit: 100
May 17, 2011, 04:16:28 PM
#2
My thread was exactly for this, but oh well.

When users earn btc...where to they come from when they request payout? If it's a wait for 100 blocks confirmation thing or when it's instant.
How does one define the formula where the earned 50btc are split between users?
member
Activity: 98
Merit: 13
May 17, 2011, 04:02:10 PM
#1
As people seem to have trouble finding it via its original thread, let's start a new thread for pushpool.

pushpool is an open source mining pool server.  A mining pool server is an HTTP JSON-RPC proxy to backend bitcoind processes.

Git repo (experts/devs only): https://github.com/jgarzik/pushpool
Latest release: http://yyz.us/bitcoin/pushpool-0.5.1.tar.gz

pushpool intentionally does not include "front end" code:  website, payouts, etc. must all be created by the pool operator.  Each pool operator may choose to differentiate themselves in a different way, while all sharing the underlying pushpool backend.
Pages:
Jump to: