Title: PoolServerJ - Tech Support Post by: shads on July 31, 2011, 07:17:08 AM Support thread for PoolServerJ (http://poolserverj.org/). Ask you questions here.
In case you're wondering what PoolServerJ (http://poolserverj.org/) is http://forum.bitcoin.org/index.php?topic=33142.0 If you are using a bitcoind v0.3.24 or below ensure you have the 4diff patch (https://bitcointalk.org/index.php?topic=22585.msg384157#msg384157). There is a known bug that will bring poolserverj to a grinding halt if it occurs. It is fixed in this patch and it also contains some massive performance improvements that will benefit poolserverj. See this post (https://bitcointalk.org/index.php?topic=33142.msg539168#msg539168) for an explanation of how it affects poolserverj and why the fact that it doesn't slow down pushpool is not necessarily a good thing. Support for performance issues If you're having performance issues (high CPU load, slow response to workers etc) your problem is probably fixable. Poolserverj has been proven to handle very high loads in production environments with minimal cpu usage. There are a number of things that can cause these symptoms though. If you want me to help you troubleshoot these sort of issues please help me out by providing the following info:
If you can't find me on IRC then PM for an email address to send this to. Title: Re: PoolServerJ - Tech Support Post by: de4l on August 26, 2011, 08:28:33 PM this is probably an error on my part, but I was trying to setup the mysql database and went to import the example sql file provided but am getting this error: Code: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `poolserverj_native`.`shares` ( `id` bigint(30) NOT NULL AUTO_IN' at line 10 just needed 2 semicolons, 1 after each statement Title: Re: PoolServerJ - Tech Support Post by: de4l on August 27, 2011, 08:32:37 AM I have noticed very poor performance when trying to run poolserverj with a solidcoin daemon, could I get you opinion if this is a) poor config on my part b) poolserverj does not like solidcoin c) solidcoin needs multi-threaded keepalive connections like this https://bitcointalk.org/index.php?topic=22585.0 d) other
Title: Re: PoolServerJ - Tech Support Post by: shads on August 27, 2011, 10:10:59 AM I have noticed very poor performance when trying to run poolserverj with a solidcoin daemon, could I get you opinion if this is a) poor config on my part b) poolserverj does not like solidcoin c) solidcoin needs multi-threaded keepalive connections like this https://bitcointalk.org/index.php?topic=22585.0 d) other It could be several of those things... I haven't tried psj with solidcoin but I can't see any reason it wouldn't work ok with so I wouldn't jump straight to b). With regards to config yes there are some easy ways to turn psj into a pig and in fact some of the default settings in the sample config are probably not ideal as defaults. With the right tuning it should fly though. I've written a bit of a guide to performance tuning here: http://poolserverj.org/documentation/performance-memory-tuning/ But definately the first step is to ensure you've got a patched bitcoind. I saw 10-20x performance increase in the rate of incoming works when I patched my daemon. I don't know how heavily solidcoin has been modified so not sure how easy/hard it will be to apply that patch but it really is essential. If patching isn't an option (or if it is and you just want more)... Then you could always setup a whole bunch of bitcoind's and feed them all into the poolserver. Title: Re: PoolServerJ - Tech Support Post by: shads on August 27, 2011, 10:16:46 AM just needed 2 semicolons, 1 after each statement thanks, I've fixed the sample sql files in 0.2.9. BTW 0.2.9 fixes a critical memory leak so please update. Title: Re: PoolServerJ - Tech Support Post by: de4l on August 27, 2011, 02:59:35 PM I updated but now I'm getting this error, tried re-installing the service too
Code: [2011-08-27 09:56:56] [info] Running 'PoolServerJServicec' Service... Title: Re: PoolServerJ - Tech Support Post by: shads on August 27, 2011, 03:26:22 PM Not sure what that one's all about I just did a diff between the 0.2.8 and 0.2.9 win-service.bat and they haven't changed... Are you running from the same directory? If not you may need to remove the service before reinstalling. Remember you *must* run win-service.bat from the bin directory or none of the paths will match up properly.
You can try running PoolServerJServicew.exe which is a gui interface to show all the service settings. Check that all the paths in there are actually valid. I'm just about to head to bed so if you don't have any luck let me know and I'll try a win-service install from the 0.2.9 binary in the morning and see what I can find. Title: Re: PoolServerJ - Tech Support Post by: shads on August 27, 2011, 11:17:11 PM oops... that's a little embarrassing. I put the 0.2.8 binary in the 0.2.9 distribution...
I've updated the archive on the download page and also put the single jar file there if you want to just download that and copy it over the old one. Sorry about that... Title: Re: PoolServerJ - Tech Support Post by: de4l on August 28, 2011, 06:53:45 AM Not sure what that one's all about I just did a diff between the 0.2.8 and 0.2.9 win-service.bat and they haven't changed... Are you running from the same directory? If not you may need to remove the service before reinstalling. Remember you *must* run win-service.bat from the bin directory or none of the paths will match up properly. You can try running PoolServerJServicew.exe which is a gui interface to show all the service settings. Check that all the paths in there are actually valid. I'm just about to head to bed so if you don't have any luck let me know and I'll try a win-service install from the 0.2.9 binary in the morning and see what I can find. I removed the older service and am starting over in a new folder, I re-downloaded the archive since you have updated it, still getting the same error, not sure what it is, could having 64bit java be messing with it? Even though I did have it running previously... Title: Re: PoolServerJ - Tech Support Post by: shads on August 28, 2011, 06:56:06 AM did you try running the service gui and verifying that all paths etc it's recorded for the service are valid?
Title: Re: PoolServerJ - Tech Support Post by: shads on August 28, 2011, 07:10:21 AM ok just tried a service install using 0.2.9a.tar.gz (the one on the website). It work both for a 1.6_u25 Sun JDK. I tested both the 32bit and 64bit versions ok. I haven't tried openJDK1.7 but I can't see any reason why it would fail. Unless "C:\Program Files\Java\jdk1.7.0\jre\bin\server\jvm.dll" doesn't happen to exist in openJDK?
You might try editing win-service.bat and changing the options : --StartMode=jvm and --StopMode=jvm to either 'java' or 'exe' (no quotes). Detail doc on service options available here: http://commons.apache.org/daemon/procrun.html procrun can be a bitch to get right so I'm scared to touch it once I've found a working config. Title: Re: PoolServerJ - Tech Support Post by: de4l on August 28, 2011, 05:48:27 PM ok just tried a service install using 0.2.9a.tar.gz (the one on the website). It work both for a 1.6_u25 Sun JDK. I tested both the 32bit and 64bit versions ok. I haven't tried openJDK1.7 but I can't see any reason why it would fail. Unless "C:\Program Files\Java\jdk1.7.0\jre\bin\server\jvm.dll" doesn't happen to exist in openJDK? You might try editing win-service.bat and changing the options : --StartMode=jvm and --StopMode=jvm to either 'java' or 'exe' (no quotes). Detail doc on service options available here: http://commons.apache.org/daemon/procrun.html procrun can be a bitch to get right so I'm scared to touch it once I've found a working config. I got it running and it seems much more stable than the last version, just need to do some performance tuning. I fixed it by finally getting the gui to run and then selecting 'use default' instead of C:\Program Files\Java\jdk1.7.0\jre\bin\server\jvm.dll even though this file did exist, something was not working with it, no idea why. I think the default might be using my 32bit jre instead of the 64bit jdk that I installed just for this, but after reading your tips that 32bit java was better in this instance.... I'll just let it go since it's running now. Title: Re: PoolServerJ - Tech Support Post by: Leandro César on September 08, 2011, 05:15:31 PM Hi,
I am using the last poolserverj on Fedora 15 64 bits, jdk 1.6 update 26, bitcoind 0.3.24 and get the follow error: org.json.JSONException: A JSONObject text must begin with '{' at character 1 Can you help me? L. Title: Re: PoolServerJ - Tech Support Post by: shads on September 08, 2011, 10:43:01 PM Hi, I am using the last poolserverj on Fedora 15 64 bits, jdk 1.6 update 26, bitcoind 0.3.24 and get the follow error: org.json.JSONException: A JSONObject text must begin with '{' at character 1 Can you help me? L. I'll try but I need a bit more information. Can you make sure debug=true and logStacktrace=true then post the full stack strace. Also can you describe what's actually happening? Is it straight after start up? Is it when you send a getwork request from a miner? Is bitcoind running etc? Title: Re: PoolServerJ - Tech Support Post by: wtfman on September 12, 2011, 11:21:30 AM Hey, I am trying to test PoolServerJ but I have a problem with the db inserts.
Using v0.29a Error: Code: work submit success, result: false Prepare Statement from Conf Code: ### native - ensure usePushPoolCompatibleFormat=false Now, there does seem the insert for block_num to be missing, but no idea where I should put it in. I have looked a bit at the source code but didnt get an exact info. Pls help Title: Re: PoolServerJ - Tech Support Post by: shads on September 12, 2011, 11:32:54 AM Prepare Statement from Conf Code: ### native - ensure usePushPoolCompatibleFormat=false Now, there does seem the insert for block_num to be missing, but no idea where I should put it in. I have looked a bit at the source code but didnt get an exact info. Pls help It's trying to write a null to a NOT NULL column... try INSERT INTO shares (rem_host, username, our_result, upstream_result, reason, solution, time, source, block_num, prev_block_hash) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ? ,?) or alternately remove the NOT NULL restriction from the block_num and prev_block_hash columns. The supplied sql scripts in 0.2.9 set those columns to NOT NULL which they probably shouldn't have. Will be changed in the next release. BTW Unless you've got a good reason for it I'd leave out the prev_block_hash column. Title: Re: PoolServerJ - Tech Support Post by: wtfman on September 12, 2011, 11:45:27 AM thanks!
Title: Re: PoolServerJ - Tech Support Post by: wtfman on September 18, 2011, 06:59:14 PM hey, I tried to use latest poolserverj in pushpool compatible mode but it didnt work for me. I have a share table that isnt called 'shares' and I also set it up in the properties file, but still it tried to insert data into 'shares'
I adjusted the db to your design, it works so far, but just now I found this in the stdout: Code: Flushed 61 shares to DB in 35.0ms (1742/sec) Title: Re: PoolServerJ - Tech Support Post by: shads on September 19, 2011, 01:00:44 AM Hi wtfman,
I assume you're running 0.2.9 then? If so then those errors aren't a problem. It's an expected exception and probably be logged. I'm pretty sure it isn't unless you've got debug enabled. However I really would recommend you get 0.3.0 working. The longpolling has been rewritten from scratch which has given it huge performance boosts as well as fixing a of obscure errors. Post some detail about the sql errors and I'll see if can help. There should be no problem using a different share table name since you can specify the query in the properties file. Post the query yr using, the table CREATE statement and any exceptions you're seeing in the log. Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on September 20, 2011, 07:41:57 PM I am currently 'testing' the latest 0.3.0rc1. The first thing i notice is the CPU usage. I am running in pushpoold compatability. So why this CPU usage? Pushpoold rarely used any CPU but PJS uses one full core.
The second thing i notice is that PSJ inserts shares quite a bit slower than pushpoold. And what it affects is the speed counted on my frontend. I am currently getting 40mh/s less detected in the frontend thereby people WILL lose coins. Title: Re: PoolServerJ - Tech Support Post by: shads on September 20, 2011, 10:58:33 PM I am currently 'testing' the latest 0.3.0rc1. The first thing i notice is the CPU usage. I am running in pushpoold compatability. So why this CPU usage? Pushpoold rarely used any CPU but PJS uses one full core. problem is most likely default cache size set too high. see: source.local.1.maxCacheSize and source.local.1.cacheWaitTimeout also: http://poolserverj.org/documentation/performance-memory-tuning/ I'm going to change the default settings in the next release to be more suitable for a small pool as I've had this default setup for some extreme load tests and I keep getting this question. Suitable for a small pool is probably the most sane default since most people will fire it up in a low usage test environment first. I figure anyone evaluating psj for a pool larger than a couple of hundred GH is more likely to read the documentation and make the high performance adjustments needed.. Quote The second thing i notice is that PSJ inserts shares quite a bit slower than pushpoold. And what it affects is the speed counted on my frontend. I am currently getting 40mh/s less detected in the frontend thereby people WILL lose coins. shares are logged slower to the database by design. shares.maxEntrysToQueueBeforeCommit=5000 shares.maxEntryAgeBeforeCommit=10 you can effectively disable this delayed writing by setting these to 0. You are not getting any less Hashes on your pool. If anything you should be getting slightly more. I'd lay money that the problem is with reporting. The work is still being dished out, hashed, returned and if valid submitted to the bitcoind so nothing is going missing. The timestamps are added when the work is submitted by the worker not when it's written to the database. Is your database using timestamps with a CURRENT_TIMESTAMP default value by any chance? Title: Re: PoolServerJ - Tech Support Post by: wtfman on September 21, 2011, 09:23:52 PM Hey shadders,
I have the following problem: Some users experience a couple of rejected shares after each LP. This is what I can see in debug mode. You have an explanation or maybe even a solution for me here? Thanks for your help Quote LP continuation reached LP servlet but is not in 'initial' state: AsyncContinuation@89e2f1@REDISPATCHED,resumed LP continuation reached LP servlet but is not in 'initial' state: AsyncContinuation@3228a1@REDISPATCHED,resumed Title: Re: PoolServerJ - Tech Support Post by: shads on September 22, 2011, 01:30:15 AM Hey shadders, I have the following problem: Some users experience a couple of rejected shares after each LP. This is what I can see in debug mode. You have an explanation or maybe even a solution for me here? Thanks for your help Quote LP continuation reached LP servlet but is not in 'initial' state: AsyncContinuation@89e2f1@REDISPATCHED,resumed LP continuation reached LP servlet but is not in 'initial' state: AsyncContinuation@3228a1@REDISPATCHED,resumed I could be wrong but I think those log messages are a seperate and possibly unrelated thing. Actually they shouldn't be a problem, what I think it is is that the request was previously suspended and resumed by the QoS filter before it reached the LP servlet. I didn't take that into account and expected any LP request should arrive in an initial state. I'll log it as a bug. A workaround for now would be disable the QoS filter. Actually I'd be interested to see if that makes a difference. As for the rejected shares, the ideal sequence of events is something like: 1/ worker gets work 2/ worker submits share 3/ worker gets work 4/ psj detects new block 5/ psj collects fresh work from bitcoind 6/ psj sends LP response 7/ worker receives LP response 8/ worker submits share The time between 4 and 7 should be very minimal but if worker happens to submit share in that space it will be rejected. This should be no more than 1-2 seconds on a busy server provided the bitcoind is patched and able to feed new work to the poolserver fast enough. If it's not some other fault then something is probably causing that gap to be higher than it should... watch the log during a block change with debug=true. You should see when the new block is detected and it should also tell when all LP responses have been dispatched (and how long it took). Anything longer a 1000ms is not ideal. Large pools are able to push several thousand in under a second with psj. A likely candidate for slowing this down is an unpatched bitcoind. please see https://bitcointalk.org/index.php?topic=22585.msg384157#msg384157 if you don't have the multithreaded rpc patch. Title: Re: PoolServerJ - Tech Support Post by: wtfman on September 22, 2011, 10:15:30 AM I actually have that patch running. Takes > 5 secs to dispatch the LP responses, though on a ~20 GHash/s load with 70 workers. I didn't even notice the incoming rate > 500/s ever, even after restart and big max cache.
Is it very likely then, that it is caused by the server performance overall? Title: Re: PoolServerJ - Tech Support Post by: shads on September 22, 2011, 10:37:19 AM Is it very likely then, that it is caused by the server performance overall? I doubt it, unless you're running on very limited hardware. 70 LP's should be taking 500ms *max* unless you're running on a pocket calculator with dialup. perhaps you should try collecting some logs and send to me as described in this post: https://bitcointalk.org/index.php?topic=33142.msg538639#msg538639 Title: Re: PoolServerJ - Tech Support Post by: shads on September 22, 2011, 11:50:29 AM ok looked at yr logs and I can only see one possibility atm if you're running the 4diff patch...
source.local.1.blockmonitor.maxPollInterval=20 this is a constant 50 requests/sec. Which is loading yr bitcoind as well as the pool... This should be fairly trivial to reasonable hardware though. What is the spec of yr server and what else is running on it? Title: Re: PoolServerJ - Tech Support Post by: shads on September 22, 2011, 10:40:52 PM Is it very likely then, that it is caused by the server performance overall? ok looking at yr top output it looks like your system is definately paging. You should probably restrict java's max heap size as it's default is quite greedy. Take a look at: http://poolserverj.org/documentation/performance-memory-tuning/ Particularly the very last section: "Limit the JVM Heap Size" Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on September 28, 2011, 02:29:07 PM Quick question?
Is there a way to include the USER_ID found in the worker table when inserting into the shares table? Title: Re: PoolServerJ - Tech Support Post by: Nebuluz on September 28, 2011, 03:45:26 PM First, awesome work there shad... PoolServerJ performance over pushpool is great.
Just got a two short question and a request :D 1) atm i'm running poolserverj in screen and it works great, but if anyone got other suggestion please post :D 2) When i check the screen it looks like this: Doing database flush for Shares: 10 Flushed 10 shares to DB in 9.0ms (1111/sec) Trimmed 14 entries from workmap and 29 entries from duplicate check sets in 0ms Dropping submit throttle to 2ms Submit Throttling on: false Doing database flush for Shares: 7 Flushed 7 shares to DB in 4.0ms (1749/sec) Submit Throttling on: false Doing database flush for Shares: 15 Flushed 15 shares to DB in 8.0ms (1874/sec) Trimmed 16 entries from workmap and 1003 entries from duplicate check sets in 0ms Submit Throttling on: false Doing database flush for Shares: 14 Flushed 14 shares to DB in 4.0ms (3499/sec) I just wonder what does Submit Throttling on: false mean? Request: I also got an request about ?method=getsourcestats, it would be nice to have a short description on what each stats really mean, if you could make a short list it would be nice. Sorry all dumb question :) Btw, i run bitcoind 0.4.0, did switch from bitcoind 0.3.24(patched with joelkatz diff4) and it seems to run great with the new bitcoind. /Best regards Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on September 29, 2011, 07:18:40 PM 2) When i check the screen it looks like this: Dude I have it running with "screen" command how do you check the screen? Title: Re: PoolServerJ - Tech Support Post by: shads on September 30, 2011, 09:46:34 AM Quick question? Is there a way to include the USER_ID found in the worker table when inserting into the shares table? It's easy to do but I'd have to make a minor code change and add it as a config option so it doesn't break backward compatibility. If you log a feature request on the source code repo site I'll add it to the todo list. Title: Re: PoolServerJ - Tech Support Post by: shads on September 30, 2011, 10:22:13 AM First, awesome work there shad... PoolServerJ performance over pushpool is great. Just got a two short question and a request :D 1) atm i'm running poolserverj in screen and it works great, but if anyone got other suggestion please post :D 2) When i check the screen it looks like this: Doing database flush for Shares: 10 Flushed 10 shares to DB in 9.0ms (1111/sec) Trimmed 14 entries from workmap and 29 entries from duplicate check sets in 0ms Dropping submit throttle to 2ms Submit Throttling on: false Doing database flush for Shares: 7 Flushed 7 shares to DB in 4.0ms (1749/sec) Submit Throttling on: false Doing database flush for Shares: 15 Flushed 15 shares to DB in 8.0ms (1874/sec) Trimmed 16 entries from workmap and 1003 entries from duplicate check sets in 0ms Submit Throttling on: false Doing database flush for Shares: 14 Flushed 14 shares to DB in 4.0ms (3499/sec) I just wonder what does Submit Throttling on: false mean? Request: I also got an request about ?method=getsourcestats, it would be nice to have a short description on what each stats really mean, if you could make a short list it would be nice. Sorry all dumb question :) Btw, i run bitcoind 0.4.0, did switch from bitcoind 0.3.24(patched with joelkatz diff4) and it seems to run great with the new bitcoind. /Best regards 1/ daemonizing poolserverj has been on my todo list since day one but this is actually the first time anyone has asked about it. I'm not much of a bash expert but I think if you do something like this: normalStartCommand > mylogfile.txt & that should redirect the output to a file and run it as a background process so you can keep using your shell. 2/ submit throttling is a fairly useless feature. It kicks in if a db flush is triggered and the previous one hasn't finished yet. It was useful during stress testing when I had a fixed number of fake miners so it would effectively throttle the submit rate. In the real world though it won't really have any effect aside from giving the miner a short delay before they receive a response to their share submits... I will get rid of it one of these days. 3/ getsourcestats is also something I built as an aid to testing so I didn't really give much though to making it readable. Most of the stats are useful, some of them do nothing and some give completely rubbish results. I also have a TODO to turn that in proper API probably with JSON output so when that's done and I've stripped out the useless stuff and put some other more useful things in I'll write up some doco... But for now here's a brief rundown (comments in italics): Memory used: 4.4375 MB - Freed by GC: 9.900390625MB This only refers to heap memory. Depending on how many connection threads you've got assigned you can add about 10-30mb to this to get real memory usage. The total of 'used' + 'freed' is approx the currently allocated heap size. State [bitcoind-patch] these stats are per daemon, if you multiples you see this section repeated Current Cache Max: 1000 - min/max: 1/1000 Current Cache Size: 998 this is the work cache. min/max are meaningless atm. There used to be a dynamic cache sizing algorithm but it was a bit crap so I took it out. The 1000 represent the max number before it will stop calling for more work. The 998 is current number in cache. This can occasionally creep over your max by up to Concurrent DL Requests. Concurrent DL Requests: 10 - min/max: 1/20 This is a gotcha, currently this gets set to 1/2 the value you've set. Another hangover from the old dynamic cache sizing algo which also regulated request rate. DL Request Interval (ms): 0 - min/max: 0/100 Current Ask Rate (works/req): 10 these 2 are rubbish Consecutive Connect Fails: 0 Consecutive Http Fails: 0 Consecutive Http Auth Fails: 0 Consecutive Http Busy Fails: 0 These do actually work but they'll always be zero unless yr daemon crashes or you have network problems between psj and bitcoind. Cache Excess: 1,002.5 Cache Excess Trend: 0.06 rubbish Cache Retreival Age: 13885 avg age of work work when retrieved from cache. measured in millis from when it was retrieved from daemon Incoming Rate: 36.69/sec how many works/sec you're getting from the daemon. This doesn't represent the maximum but if you look straight after a block change for a few seconds it will probably be close. Incoming Fullfillment Rate: 100% number request/number received. This will drop under 100% if you have http errors or daemon stops responding to requests for any reason. Outgoing Requested Rate: 0.78/sec Outgoing Delivered Rate: 0.78/sec Outgoing Fullfillment Rate: 100% same thing basically. Except if fullfillment drops below it most likely means psj can't get work from the daemon fast enough. Longpoll Connections: 1 / 1000 Ignore the 1000. There used to be a limit but there's not anymore. Connections will include connections that have been silently dropped by the client but not connection that have expired. WorkSource Stats: Stats for source: [bitcoind-patch] Current Block: 147243 Cache: Work Received: 42965 Work Delivered: 978 fairly obvious, duplicate below Upstream Request Fail Rate: 0% Upstream Request Fail Rate Tiny: 0% rubbish Immediately Serviced Rate: 91.2% This one is worth a comment. Immediately serviced mean miner request work, psj checked cache and found one already available. If the cache is empty it will wait a few seconds for one to arrive and this counts as 'not immediate' In reality it might only be a millisecond or two. MultiGet Delivery Rate: ?% Delayed Serviced Rate: 100% Not Serviced Rate: 0% Expired Work Rate: 100% rubbish Duplicate Work Rate: 0% Usually 0 but if you have an unpatched daemon there's a bug that cause duplicates... If you ever see this higher than 0.01% keep an eye on it, it's a definately indicator something is wrong. Cache Growth Rate: 17.228% Cache Growth Rate Short: 29.76% rubbish Work Submissions: Work Supplied: 978 Work Submitted: 0 Work Submitted Invalid: 0 Work Submitted Unknown: 0 Work Submitted Valid: 0 Work Submitted Valid Real: 0 not rubbish but doesn't work. HTTP: Requests Issued: 42972 Fail Rate: 0% Success trip time: 24.56 ms Header trip time: 24.55 ms Fail trip time: ? ms Expire trip time: ? ms These are about the HTTP connection between psj and daemon. Nothing to do with miner side of the server. The trip times are a useful for tuning max concurrent connections... Once the latency start to go up dramatically you've probably got too many. Cache Age: Entries: 998 Oldest: 10337 Newest: 4032 Avg: 5418 Reject Rate: 0% stats on the current contents of the cache. Oldest. Newest, Avg are age in millis. Reject Rate is basically the same thing a Duplicate rate except with a different moving average period. Title: Re: PoolServerJ - Tech Support Post by: eleuthria on October 06, 2011, 08:34:12 PM If it's not some other fault then something is probably causing that gap to be higher than it should... watch the log during a block change with debug=true. You should see when the new block is detected and it should also tell when all LP responses have been dispatched (and how long it took). Anything longer a 1000ms is not ideal. Large pools are able to push several thousand in under a second with psj. Just to add a reference point, BTC Guild pushes out between 6,000 and 8,000 LPs depending on the time of day. Our average time is between 600ms and 1000ms. It can be even faster if both of our bitcoinds detected the new block simultaneously (our record was 490ms for ~7,500 LPs). This is with two bitcoind clients, running on dedicated servers. One is local on the same server as PSJ, one is running on another server in the same datacenter which runs the database. This may improve even more soon, ArtForz has been looking into an extra optimization in bitcoind's getwork code and merging it with JoelKatz's 4diff patch. Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on October 09, 2011, 02:28:09 AM Can you please add the X-Roll-Ntime header?
Title: Re: PoolServerJ - Tech Support Post by: wtfman on October 23, 2011, 11:36:04 AM running mm-0.5 I stumble upon this error every now and then.
org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException at org.eclipse.jetty.io.UncheckedPrintWriter.setError(UncheckedPrintWriter.java:107) at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:280) at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:295) at java.io.PrintWriter.append(PrintWriter.java:977) at com.shadworld.poolserver.LongpollHandler.completeLongpoll(LongpollHandler.java:177) at com.shadworld.poolserver.LongpollHandler$LongpollTimeoutTask.call(LongpollHandler.java:340) at com.shadworld.poolserver.LongpollHandler$LongpollTimeoutTask.call(LongpollHandler.java:1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) Caused by: org.eclipse.jetty.io.EofException at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:911) at org.eclipse.jetty.http.AbstractGenerator.flush(AbstractGenerator.java:431) at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:89) at org.eclipse.jetty.server.HttpConnection$Output.flush(HttpConnection.java:1139) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:168) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:96) at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:126) at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:283) at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:107) at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:271) ... 12 more Caused by: java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcher.writev0(Native Method) at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51) at sun.nio.ch.IOUtil.write(IOUtil.java:182) at sun.nio.ch.SocketChannelImpl.write0(SocketChannelImpl.java:383) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:406) at java.nio.channels.SocketChannel.write(SocketChannel.java:384) at org.eclipse.jetty.io.nio.ChannelEndPoint.gatheringFlush(ChannelEndPoint.java:347) at org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:285) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:259) at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:843) ... 21 more Title: Re: PoolServerJ - Tech Support Post by: Jine on October 23, 2011, 01:56:34 PM I've started testing poolserverj at bitcoins.lc for handling larger loads better (Having issues with LP's against large amount of connections).
But before rolling out anything public, i really need to get rid of the DATETIME-fields in MySQL. Is that possible? I'd like to have everything in GMT UNIX Timestamps. One "hackish" way would be to do the conversion in the statement, but I'd like actually make poolserverj to insert unix timestamp instead of having to do a TO_UNIXTIME(?) in the statment. Even better would be to drop MySQL entirely and finally use a better scaling database (MongoDB/other No-sql DB) and let Mongo take care of timestamps by it's own, also let mongodb take care of replication and load balancing / sharding. Any planned NoSQL-support? Title: Re: PoolServerJ - Tech Support Post by: wtfman_mobile on October 23, 2011, 02:37:32 PM hey again.
there was even another issue with running mm-0.5. It worked great until first Long Poll, then CPU usage skyrocketed and didnt drop any more. After a couple of mins the work queue was emptied out so miners only received No Work available message and pool hash rate dropped to 0.0 Hash/s. I have tried it before with only 2 miners in testnet and there was no problem. Problem occured with approximately 15Ghash/s and 60 workers. Title: Re: PoolServerJ - Tech Support Post by: urstroyer on October 23, 2011, 03:17:58 PM hey again. there was even another issue with running mm-0.5. It worked great until first Long Poll, then CPU usage skyrocketed and didnt drop any more. After a couple of mins the work queue was emptied out so miners only received No Work available message and pool hash rate dropped to 0.0 Hash/s. I have tried it before with only 2 miners in testnet and there was no problem. Problem occured with approximately 15Ghash/s and 60 workers. I have exactly the same issue, poolserverj mm is running smooth at low cpu usage and finding both nmc and btc blocks until network block is found and lp happens. Then bitcoind is under heavy cpu usage until i restart the poolserverj. We currently use a 4diff patched version of vinced bitcoind. Title: Re: PoolServerJ - Tech Support Post by: shads on October 24, 2011, 12:05:52 AM running mm-0.5 I stumble upon this error every now and then. org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException at org.eclipse.jetty.io.UncheckedPrintWriter.setError(UncheckedPrintWriter.java:107) at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:280) at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:295) at java.io.PrintWriter.append(PrintWriter.java:977) at com.shadworld.poolserver.LongpollHandler.completeLongpoll(LongpollHandler.java:177) This is a normal/expected exception. It happens when psj tries to send a longpoll response but the client has silently dropped the connection. In this case psj will recycle the work for the next LP connection in the queue. The reason yr seeing it now and may not have before is that while psj-mm is in alpha I'm dumping a lot more events to the log so I can see better what's going on inside. This particularly exception happens all the time with pre-mm version but isn't logged. Title: Re: PoolServerJ - Tech Support Post by: shads on October 24, 2011, 12:21:57 AM I've started testing poolserverj at bitcoins.lc for handling larger loads better (Having issues with LP's against large amount of connections). But before rolling out anything public, i really need to get rid of the DATETIME-fields in MySQL. Is that possible? I'd like to have everything in GMT UNIX Timestamps. One "hackish" way would be to do the conversion in the statement, but I'd like actually make poolserverj to insert unix timestamp instead of having to do a TO_UNIXTIME(?) in the statment. Even better would be to drop MySQL entirely and finally use a better scaling database (MongoDB/other No-sql DB) and let Mongo take care of timestamps by it's own, also let mongodb take care of replication and load balancing / sharding. Any planned NoSQL-support? Well before the advent of merged mining PSJ had exceptional longpoll performance but as you can see from the last few posts in this thread there's a few issues to be ironed out.... There is one good reason why you'd want to have timestamps set on the psj side rather than DB side. Because psj caches shares and bulk writes them there can be a delay between when they came in and when the DB sees them. PSJ timestamps the share as soon as it's received and uses this timestamp when writing to the db. So if accurate share times are important to you that's something to consider. I'm not really familiar with mongo or no-sql. If they have JDBC drivers then adding support would be fairly trivial. However it won't happen until mm is stabilised. Dropping mysql support isn't likely sits it's most commonly used. Having poolserver insert a timestamp directly should also be fairly trivial. The internal representation is the same as a unix timestamp GMT but in millis instead of seconds. If you're comfortable building from source it would only be a couple of lines needed modding in DefaultPreparedStatementSharesDBFlushEngine. If you really want crazy performance and your share writes don't update existing rows have a look at the bulkloader engines in the source. I presume what yr actually after is just an integer column? If so have you tried just changing the column type to see if it works? The code that sets is this: stmt.setTimestamp(7, new Timestamp(entry.createTime)); And I have a feeling if the target column type is a BIGINT it will probably just convert it. If not the change you'd need to make would be something like: stmt.setLong(7, entry.createTime / 1000); Title: Re: PoolServerJ - Tech Support Post by: shads on October 24, 2011, 12:30:22 AM hey again. there was even another issue with running mm-0.5. It worked great until first Long Poll, then CPU usage skyrocketed and didnt drop any more. After a couple of mins the work queue was emptied out so miners only received No Work available message and pool hash rate dropped to 0.0 Hash/s. I have tried it before with only 2 miners in testnet and there was no problem. Problem occured with approximately 15Ghash/s and 60 workers. I have exactly the same issue, poolserverj mm is running smooth at low cpu usage and finding both nmc and btc blocks until network block is found and lp happens. Then bitcoind is under heavy cpu usage until i restart the poolserverj. We currently use a 4diff patched version of vinced bitcoind. When you see this happen can you try checking http://localhost:8997/?method=getsourcestats and report back is Duplicate rate or Reject rate are above zero? If not can you set debug=true trace=true traceTargets=merged and throw the output onto pastebin? Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on October 24, 2011, 02:20:46 AM hey again. there was even another issue with running mm-0.5. It worked great until first Long Poll, then CPU usage skyrocketed and didnt drop any more. After a couple of mins the work queue was emptied out so miners only received No Work available message and pool hash rate dropped to 0.0 Hash/s. I have tried it before with only 2 miners in testnet and there was no problem. Problem occured with approximately 15Ghash/s and 60 workers. I have exactly the same issue, poolserverj mm is running smooth at low cpu usage and finding both nmc and btc blocks until network block is found and lp happens. Then bitcoind is under heavy cpu usage until i restart the poolserverj. We currently use a 4diff patched version of vinced bitcoind. This also happens to me with mm-psj one suggestion from shadders was to set forceAllSubmitsUpstream to false. I have not tried it. Also you should lower your work cache sizes big time. I know you where upset with me in the chat room for not using/testing it but I had a working part of my pool and many other parts that where not working I had to prioritize them as people wanted me to expand into other countries. Also I was hoping you would find the bug and issue a new version before I got a chance to retry your suggestions. Title: Re: PoolServerJ - Tech Support Post by: urstroyer on October 24, 2011, 04:58:40 PM hey again. there was even another issue with running mm-0.5. It worked great until first Long Poll, then CPU usage skyrocketed and didnt drop any more. After a couple of mins the work queue was emptied out so miners only received No Work available message and pool hash rate dropped to 0.0 Hash/s. I have tried it before with only 2 miners in testnet and there was no problem. Problem occured with approximately 15Ghash/s and 60 workers. I have exactly the same issue, poolserverj mm is running smooth at low cpu usage and finding both nmc and btc blocks until network block is found and lp happens. Then bitcoind is under heavy cpu usage until i restart the poolserverj. We currently use a 4diff patched version of vinced bitcoind. When you see this happen can you try checking http://localhost:8997/?method=getsourcestats and report back is Duplicate rate or Reject rate are above zero? If not can you set debug=true trace=true traceTargets=merged and throw the output onto pastebin? Running psj mm for an hour now with 35gh/s load an got some new test results. I seems like the heavy cpu load (70-80%) on bitcoind happens CAN happen on every lp which was trigged from a new network block. When this happens, i noticed that the field block_num in shares table gets the current NMC block number! It also happend that on another network block and lp the cpu usage got back to normal 3-5% load and guess what! The field block_num in shares table got the BTC block number again on every share. The situation can actually switch every on every lp. Here are two snapshots of getsourcestats: #### 1 minute after starting psj (heavy cpu load, nmc block_num in shares table) #### http://pastebin.com/BMAx0vgG #### 30 minute after starting psj (heavy cpu load, nmc block_num in shares table) #### http://pastebin.com/zViA7K5b #### Console on lp (normal cpu load to heavy cpu load) #### http://pastebin.com/zhfQG1ES I couldn't figure out what circumstances cause this effect, it seems pretty random to me. Maybe can help. Title: Re: PoolServerJ - Tech Support Post by: shads on October 25, 2011, 01:26:36 AM Thanks for the info Urstroyer... I think this is the indicator I needed:
Code: # Somewhere in the chain it's discarding valid work and getting more from the daemon. Not because of duplicates in this case. One of the validation checks it does is to ensure the work is from the current block before sending out. It seems having different sets of block numbers is causing a bit confusion. I'm actually nearly ready to release the fix that should make longpolling work for both chains and I've replaced the blocknum field (which was just a long int) which a new BlockNumbers class that tracks blocks for all chains so that should be the end of it with a bit of luck. Title: Re: PoolServerJ - Tech Support Post by: shads on October 25, 2011, 07:26:44 AM MM edition .06 is now on the downloads page. This is first version of MM that I'm reasonably happy with.
It should now be sending longpolls if either block changes and the server is now actively monitoring the state of all block chains.. Issues with high CPU load caused by PSJ rejecting valid work should also be resolved. If you are going to try it I'd appreciate if you could set the following: debug=true trace=true traceTargets=blockmon If anything odd happens this should give me some useful info to play with. Title: Re: PoolServerJ - Tech Support Post by: wtfman on October 25, 2011, 07:55:35 AM MM edition .06 is now on the downloads page. This is first version of MM that I'm reasonably happy with. It should now be sending longpolls if either block changes and the server is now actively monitoring the state of all block chains.. Issues with high CPU load caused by PSJ rejecting valid work should also be resolved. If you are going to try it I'd appreciate if you could set the following: debug=true trace=true traceTargets=blockmon If anything odd happens this should give me some useful info to play with. great, testing it right now Title: Re: PoolServerJ - Tech Support Post by: urstroyer on October 25, 2011, 10:18:59 AM Running very smooth now! Great work! Even lp is happening quite often, seems to work out.
I'll report back after some more hours on load. Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on October 25, 2011, 01:25:48 PM MM edition .06 is now on the downloads page. This is first version of MM that I'm reasonably happy with. It should now be sending longpolls if either block changes and the server is now actively monitoring the state of all block chains.. Issues with high CPU load caused by PSJ rejecting valid work should also be resolved. If you are going to try it I'd appreciate if you could set the following: debug=true trace=true traceTargets=blockmon If anything odd happens this should give me some useful info to play with. 100 GHs and looking good! I have everything set except: traceTargets=blockmon I have a good feeling about this one. Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 03:14:27 PM If the connection between MySQL and poolserverj goes down (timeout and/or other reasons), the server having issues with doing reconnects, please read the following error message.
Quote java.sql.BatchUpdateException: The last packet successfully received from the server was 4,664,997 milliseconds ago. The last packet sent successfully to the server was 1,950,645 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. How do i set autoReconnect=true? I can increase the timeout on the serverside, but feels kinda non-optional. / Jim EDIT: This is for the non-MM version. Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 03:20:41 PM Hmm, strange.. noticed the JDBC-url which contains autoReconnect=true.
I'm having issues with writing shares to the db so... Get the errormessage above in the log. Title: Re: PoolServerJ - Tech Support Post by: shads on November 01, 2011, 03:21:36 PM I could have sworn I'd set that because I've seen this problem before. I've just changed it as a default setting which will require a full release since it's buried in once of the support libs... Since yr obviously building from source you can set it in the Conf class.
Add the line: workerSql.getJdbcOptionMap().put("autoReconnect", "true"); just after: workerSql = new MySql(whost, wport == null ? "3306" : String.valueOf(wport), wschema, wuser, wpassword); Title: Re: PoolServerJ - Tech Support Post by: shads on November 01, 2011, 03:23:54 PM Hmm, strange.. noticed the JDBC-url which contains autoReconnect=true. I'm having issues with writing shares to the db so... Get the errormessage above in the log. aaahh when I had that issue previously it was with the workerSql connection not the shares one so whatever I changed may have only affected that. Add that same line but where I said 'workerSql' use 'sharesSql'. Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 03:28:29 PM I'm going to throw that in soon, i restarted PSJ and now I'm getting this error...
Quote Failed to commit to database. java.sql.BatchUpdateException: Field 'block_num' doesn't have a default value Query being executed when exception was thrown: INSERT INTO pool_shares (rem_host, username, our_result, upstream_result, reason, solution, time) VALUES ('213.112.59.222', 'Ly5pv6', 1, 0, null, '00000001763915294e20 .... 000000000080020000', UNIX_TIMESTAMP('2011-11-01 16:26:22')) at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024) at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449) at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) at com.shadworld.poolserver.db.shares.DefaultPreparedStatementSharesDBFlushEngine. flushToDatabase(DefaultPreparedStatementSharesDBFlushEngine.java:127) at com.shadworld.poolserver.logging.ShareLoggingThread.run(ShareLoggingThread.java:156) Any ideas? My config (snippet): Quote usePushPoolCompatibleFormat=false ... db.stmt.insertShare=INSERT INTO pool_shares (rem_host, username, our_result, upstream_result, reason, solution, time) VALUES (?, ?, ?, ?, ?, ?, UNIX_TIMESTAMP(?)) Title: Re: PoolServerJ - Tech Support Post by: shads on November 01, 2011, 03:30:42 PM block_num column in sample db script is set to 'not null'... change it and it should be fine..
Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 03:31:59 PM Dooooooh! Stupid me, thanks :)
Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 04:38:37 PM Hmm, strange.. noticed the JDBC-url which contains autoReconnect=true. I'm having issues with writing shares to the db so... Get the errormessage above in the log. aaahh when I had that issue previously it was with the workerSql connection not the shares one so whatever I changed may have only affected that. Add that same line but where I said 'workerSql' use 'sharesSql'. Quote if (workerSql != null) workerSql.getJdbcOptionMap().put("autoReconnect", "true"); if (sharesSql != null) sharesSql.getJdbcOptionMap().put("autoReconnect", "true"); Seems like it's already there. Does the 0.3.0-FINAL version contain that to? I'm using that for testing now, to avoid any potential issues with my own patches/fixes :) A 0.3.1 version based upon the latest hg would be awesome, as i having a bit of issues with compiling the code from bitbucket. (Have to setup a better development environment) / Jim Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 04:48:15 PM There is something seriously wrong with my setup (MySQL+PSJ), getting all kinds of mysql-issues, this is the latest:
Quote Failed to commit to database. java.sql.BatchUpdateException: Communications link failure The last packet successfully received from the server was 703,780 milliseconds ago. The last packet sent successfully to the server was 9 milliseconds ago. Query being executed when exception was thrown: INSERT INTO pool_shares (rem_host, username, our_result, upstream_result, reason, solution, time) VALUES ('213.112.59.222', 'Ly5pv6', 1, 0, null, '000000019e4eb299110ef922bf6f3cfe7dbb2c69157066e567b36266000008d200000000340305a 3500db5479f929646294649725a231962027d44a503d5f67af87fbdd34eb021d51a0df0ca3c9ee9 0200000080000000000000000000000000000000000000000000000000000000000000000000000 0000000000080020000', UNIX_TIMESTAMP('2011-11-01 17:45:09')) at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024) at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449) at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) at com.shadworld.poolserver.db.shares.DefaultPreparedStatementSharesDBFlushEngine. flushToDatabase(DefaultPreparedStatementSharesDBFlushEngine.java:127) at com.shadworld.poolserver.logging.ShareLoggingThread.run(ShareLoggingThread.java:156) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure The last packet successfully received from the server was 703,780 milliseconds ago. The last packet sent successfully to the server was 9 milliseconds ago. Any ideas? :( Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 05:39:12 PM A restart of PSJ solved it, but the issue is kinda strange. The connection between mysql and PSJ seems to break from time to time with 0.3.0-FINAL.
Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on November 01, 2011, 06:33:16 PM Does poolserverj have rollntime support?
Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 08:37:16 PM Yes, it does.
Title: Re: PoolServerJ - Tech Support Post by: Jine on November 01, 2011, 08:40:07 PM I'm still having serious issues with the db-connectivity.
Even with miners working against the poolserver, i get this issue. Quote Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: The last packet successfully received from the server was 8,777,967 milliseconds ago. The last packet sent successfully to the server was 7,665,562 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. Title: Re: PoolServerJ - Tech Support Post by: shads on November 02, 2011, 12:43:06 AM Does poolserverj have rollntime support? It sort of does but not really... Meaning I half implemented it but never finished it. It won't take much to finish but it will require a fairly extensive testing cycle afterwards. I doubt it will ever support noncerange. Supporting noncerange requires additional overhead for not much gain and with internal work generation about to be released which is orders of magnitude faster than json-rpc getwork, generating work is very cheap and unlikely to ever be a bottleneck again unless one day we have peta-hash pools. Title: Re: PoolServerJ - Tech Support Post by: shads on November 02, 2011, 12:51:08 AM I'm still having serious issues with the db-connectivity. Even with miners working against the poolserver, i get this issue. Quote Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: The last packet successfully received from the server was 8,777,967 milliseconds ago. The last packet sent successfully to the server was 7,665,562 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. I've only seen these sorts of issues twice before. Onces was in a test setup where worker connection was unused for over 24 hours. The other which looked a lot more like the quoted exception was using bulkloader engines but that was kind of a special case. Using LOAD DATA INFILE statements with internal streams masqerading as the the LOCAL file. In any case I'm still a bit baffled. The MySql class checks the state of the connection before using it. i.e. if (conn.isClosed()) prepareConnection(); So this should only occur if the server is dropping the connection silently as far as I can tell and if it is then mysql is behaving pretty badly. I will have a look at the code again today just to be sure though. I notice in all these examples the time since last use is very high. Do you have a miner running off the test pool constantly? I wonder if that's the case if you're ever likely to see this in production? Aside from the one example above which was a pretty unusual case I've never heard any reports of this happening in the field. Title: Re: PoolServerJ - Tech Support Post by: Jine on November 02, 2011, 08:59:33 AM Yes, i do have a miner working at ~6mh or something for testing. (A few shares per hour)
I'll point my 300mh miner against it as soon as i get home later tonight. But still, pretty scary if this would happen in production - no shares are logged in db... A hard restart of PSJ is required to get it up and running again. Then it works for a few shares (at 6mh) and then it goes bad again. Title: Re: PoolServerJ - Tech Support Post by: shads on November 02, 2011, 11:26:28 AM But still, pretty scary if this would happen in production - no shares are logged in db... A hard restart of PSJ is required to get it up and running again. True... I'm keen to find the source of it but as I said to my knowledge it's never happened in production. BTW which version are you running? Title: Re: PoolServerJ - Tech Support Post by: Jine on November 02, 2011, 11:56:24 AM 0.3.0-FINAL, the binary version.
I'm struggling to compile from source, any walk-through or similar? Debian Squeeze, apt-get install maven2... then what? :) EDIT: Been playing around with mvn compile/install, installed all libs_non-mvn into my repo, but when i run "mvn compile" in poolserverj-core (which is a dependencie for poolserverj-core) i get this error: Quote [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure /usr/src/bitcoin-poolserverj/poolserverj-core/src/main/java/com/shadworld/poolserver/entity/Worker.java:[70,16] generics are not supported in -source 1.3 (use -source 5 or higher to enable generics) private HashSet<String> allowedHosts = new HashSet(); /usr/src/bitcoin-poolserverj/poolserverj-core/src/main/java/com/shadworld/poolserver/entity/Worker.java:[77,17] for-each loops are not supported in -source 1.3 (use -source 5 or higher to enable for-each loops) for (String h : allowedHosts) { /usr/src/bitcoin-poolserverj/poolserverj-core/src/main/java/com/shadworld/poolserver/entity/UniquePortionString.java:[47,2] annotations are not supported in -source 1.3 (use -source 5 or higher to enable annotations) @Override /usr/src/bitcoin-poolserverj/poolserverj-core/src/main/java/com/shadworld/poolserver/entity/FastEqualsSolution.java:[17,2] annotations are not supported in -source 1.3 (use -source 5 or higher to enable annotations) @Override EDIT: Installed poolserverj-core with mvn install:install-file, but I'm running into the same issue with compiling poolserverj-main :/ Title: Re: PoolServerJ - Tech Support Post by: shads on November 05, 2011, 02:23:15 AM Sorry I missed this post somehow... Your maven build is set to use java compliance level 1.3 I can't actually recall the setting but you need to declare the compliance level in the pom.xml file.
As an alternative I've just posted a guide to setting up the project in eclipse. This is not for a maven setup but it's quickest easiest way to do it. The only disadvantage is that you won't have attached source for some of the dependencies but unless it's very rare you need to go into those for debugging. The guide is here: http://poolserverj.org/documentation/guide-to-setting-up-poolserverj-in-eclipse-3-7/ If you set it up this way you'll be able to run poolserverj inside eclipse which will allow you to use all the debug features to follow what's going on. Title: Re: PoolServerJ - Tech Support Post by: shads on November 05, 2011, 11:20:39 PM I'm still having serious issues with the db-connectivity. Even with miners working against the poolserver, i get this issue. Quote Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: The last packet successfully received from the server was 8,777,967 milliseconds ago. The last packet sent successfully to the server was 7,665,562 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. just added handling on the worker db connection to catch connection exceptions and make an attempt to close and reopen connection. Working on the shares connection now but that's a bit more involved. I figure while I'm there I might as well deal with this feature request: https://bitbucket.org/shadders/bitcoin-poolserverj/issue/10/failed-to-commit-to-database-should-cache When connection fails start serializing shares to disk and recover them and start feeding to DB once connection state is normal again. Title: Security HOTFIX - PLEASE UPDATE Post by: shads on November 06, 2011, 05:58:41 AM Security HOTFIX - PLEASE UPDATE
see this post for details: https://bitcointalk.org/index.php?topic=33142.msg608297#msg608297 Title: Re: PoolServerJ - Tech Support Post by: ThiagoCMC on November 07, 2011, 02:33:26 AM Hi!
I just start the PoolServerJ 0.3.1 for the first time, I'm running it with litecoind. I got: Code: administrativo@ltcmining1:~/poolserverj-0.3.1/bin$ java -classpath poolserverj.jar:../lib/*:../lib/lib_non-maven/*:../lib/plugins com.shadworld.poolserver.servicelauncher.PoolServerService start ../conf-samples/local-daemon.properties This message: "com.google.bitcoin.core.VerificationException: Difficulty target is bad:" is expected?! And, how to enable LongPool?! Thank you guys! Thiago Title: Re: PoolServerJ - Tech Support Post by: shads on November 07, 2011, 02:43:12 AM Well you're the first person to try it with litecoin to my knowledge...
0.3.1 is not SCrypt compatible. You'll need the merged mining version. Also I seem to recall there's something odd about litecoin difficulty? Like it can be below 1 or something like that? Can you post the results of a getwork from a litecoind here so I can see what the difficulty bits actually are? Title: Re: PoolServerJ - Tech Support Post by: ThiagoCMC on November 07, 2011, 02:54:56 AM Good to know that I'm the first one!! lol
Here we go: Code: administrativo@ltcmining1:~$ ./Litecoin/litecoin/src/litecoind getwork Code: administrativo@ltcmining1:~$ ./Litecoin/litecoin/src/litecoind getdifficulty Thank you! Best! Thiago Title: Re: PoolServerJ - Tech Support Post by: shads on November 07, 2011, 02:59:12 AM ok yes difficulty is below the minimum allowed. I'll ask the dev what the minimum constant is and update PSJ. There should be a major release later today or tomorrow so hopefull I'll get it included in that.
Title: Re: PoolServerJ - Tech Support Post by: ThiagoCMC on November 07, 2011, 03:04:54 AM WOW! Thank you!!
I'm about to start my Litecoin pool, in portuguese for the brazillian people... Would love to use PoolServJ instead of PushPool... Regards, Thiago Title: Re: PoolServerJ - Tech Support Post by: ThiagoCMC on November 07, 2011, 03:09:19 AM And about being SCrypt compatible?!
Maybe this can be a major problem?! Title: Re: PoolServerJ - Tech Support Post by: Snapman on November 07, 2011, 03:18:25 AM WOW! Thank you!! I'm about to start my Litecoin pool, in portuguese for the brazillian people... Would love to use PoolServJ instead of PushPool... Regards, Thiago I second that statemment, psj with scrypt compatibility would be extremely helpful for those of us who think "psj 0wnz pp in the face :O" Title: Re: PoolServerJ - Tech Support Post by: Retard on November 10, 2011, 11:25:24 AM I would test to install PoolServerJ for merge mining but i have a problem and i dont know why ?
Namecoin Client running all Blocks Downloaded version 0.5 Bitcoin Client running all Blocks Downloaded version 0.5 Ubunut Version 10.11 PoolserverJ Version : poolserverj-0.4.0rc2 Mysql and all Daemons on the same server but after start i get this Quote [03:18:03.560] Realm resolved null for key: localhost:8331/ Realm: jsonrpc 205349 [shared-httpclient-97] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [03:18:03.560] RETRY [03:18:03.561] getblocknumber response status: 401 for url: http://localhost:8330/ [03:18:03.561] getblocknumber response status: 401 for url: http://localhost:8330/ [03:18:03.561] Realm resolved null for key: localhost:8331/ Realm: jsonrpc 205350 [shared-httpclient-229] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [03:18:03.562] RETRY [03:18:03.562] Realm resolved null for key: localhost:8331/ Realm: jsonrpc 205351 [shared-httpclient-125] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [03:18:03.562] RETRY [03:18:03.562] Realm resolved null for key: localhost:8331/ Realm: jsonrpc 205352 [shared-httpclient-82] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [03:18:03.563] RETRY [03:18:03.563] getblocknumber response status: 401 for url: http://localhost:8330/ 210667 [shared-httpclient-19] WARN org.eclipse.jetty.util.log - EXPIRED ContentExchange@1872384842=POST//localhost:8331/#8 [03:18:08.879] [WARN] Failed to build auxblock for chain: namecoin java.lang.NullPointerException at com.shadworld.poolserver.source.merged.MergedMiningGroup.buildAuxBlock(MergedMiningGroup.java:262) at com.shadworld.poolserver.source.merged.MergedMiningGroup.updateAuxes(MergedMiningGroup.java:163) at com.shadworld.poolserver.Cleaner.run(Cleaner.java:54) [03:18:08.879] [WARN] Reverting to rpc getauxblock for chain: namecoin [03:18:33.480] getblocknumber response status: 401 for url: http://localhost:8330/ [03:18:33.485] Realm resolved null for key: localhost:8331/ Realm: jsonrpc 235274 [shared-httpclient-124] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [03:18:33.499] Realm resolved null for key: localhost:8331/ Realm: jsonrpc 235288 [shared-httpclient-70] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc After start that checked all : Quote [03:45:31.932] Mapped parameter 1 to field 1 (remote_host) [03:45:31.932] Mapped parameter 2 to field 2 (username) [03:45:31.932] Mapped parameter 3 to field 3 (our_result) [03:45:31.932] Mapped parameter 4 to field 4 (upstream_result) [03:45:31.933] Mapped parameter 5 to field 5 (reason) [03:45:31.933] Mapped parameter 6 to field 7 (time) [03:45:31.933] Mapped parameter 7 to field 8 (source) [03:45:31.933] Mapped parameter 8 to field 9 (block_num) [03:45:31.933] Mapped parameter 9 to field 11 (useragent) [03:45:31.935] Building Shares-DB-flush-engine: DefaultPreparedStatementSharesDBFlushEngine.class with extraParams: [] [03:45:31.936] Building Worker-authentication-engine: WorkerAuthenticator.class with extraParams: null [03:45:31.979] Configuring aux daemon for WorkSource: bitcoind-mm [03:45:31.979] Chain name: namecoin [03:45:31.980] Chain id: 1 [03:45:31.980] Chain url: http://localhost:8331/ [03:45:31.980] Chain username: smart [03:45:31.980] Chain payoutAddress: Mz3Qs4eDoE7USV8sjnCf8aATeHCJAtM5Zp [03:45:31.980] Chain password: s***t ^C[03:45:32.343] Shutting down poolserver... [03:45:32.343] Flushing cached shares... [03:45:32.343] Flush shares cache complete... [03:45:32.343] Waiting to complete upstream share submits... [03:45:32.350] Finished upstream submits... [03:45:32.350] Flushing final shares... [03:45:32.365] 0 shares in 1,320,925,568 seconds. Current hashRate: 0 GH/s [03:45:32.365] Submit Throttling on: false [03:45:32.365] All share submits flushed... [03:45:32.366] Waiting for threads to die... [03:45:32.367] Dumping workmap to file: /home/smart/Downloads/poolserverj-0.4.0rc2/tmp/workmap-8332.bin 2449 [main] INFO org.eclipse.jetty.util.log - jetty-7.4.0.v20110414 2768 [main] INFO org.eclipse.jetty.util.log - started o.e.j.s.ServletContextHandler{/,null} 2869 [main] INFO org.eclipse.jetty.util.log - Started SelectChannelConnector@0.0.0.0:8332 STARTING 2873 [main] INFO org.eclipse.jetty.util.log - jetty-7.4.0.v20110414 2873 [main] INFO org.eclipse.jetty.util.log - started o.e.j.s.ServletContextHandler{/,null} 2907 [main] INFO org.eclipse.jetty.util.log - Started SelectChannelConnector@0.0.0.0:8997 STARTING [03:45:32.919] Starting local work source proxy: bitcoind-mm whats wrong ? any idea ? i can need help to configure this -.- .... pushpoold works without problems but i need a java version :P best regards Smart Title: Re: PoolServerJ - Tech Support Post by: cablepair on November 10, 2011, 02:09:33 PM ok smart and I have that problem fixed by using the mini binary shads posted
Poolserverj is starting now we are getting this message: [06:07:45.255] Exception in Cleaner Thread java.lang.NullPointerException at com.shadworld.poolserver.workmaker.WorkMaker.update(WorkMaker.java:178) at com.shadworld.poolserver.source.merged.MergedMiningGroup.updateAuxes(MergedMiningGroup.java:249) at com.shadworld.poolserver.Cleaner.run(Cleaner.java:54) and miners cannot connect although sometimes it will say "retriving worker from database" any ideas? Title: Re: PoolServerJ - Tech Support Post by: shads on November 10, 2011, 02:38:00 PM ok smart and I have that problem fixed by using the mini binary shads posted Poolserverj is starting now we are getting this message: [06:07:45.255] Exception in Cleaner Thread java.lang.NullPointerException at com.shadworld.poolserver.workmaker.WorkMaker.update(WorkMaker.java:178) at com.shadworld.poolserver.source.merged.MergedMiningGroup.updateAuxes(MergedMiningGroup.java:249) at com.shadworld.poolserver.Cleaner.run(Cleaner.java:54) and miners cannot connect although sometimes it will say "retriving worker from database" any ideas? see: https://bitcointalk.org/index.php?topic=51226.msg613256#msg613256 can people please keep tech support questions specific to the workmaker release in that thread... I'm thinking I might close the other threads and link them all to that one to keep it simple. Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on November 23, 2011, 02:00:41 PM What is the difference between 0.3.X and a Workmaker edition? Also, do i really need the 4diff patch? Cause i am using 0.3.24(I can upgrade if the problem is resolved) on windows, and it would be a pain in the ass to compile Bitcoin(with or without gui) on windows.
Title: Re: PoolServerJ - Tech Support Post by: shads on November 23, 2011, 02:10:17 PM What is the difference between 0.3.X and a Workmaker edition? Also, do i really need the 4diff patch? Cause i am using 0.3.24(I can upgrade if the problem is resolved) on windows, and it would be a pain in the ass to compile Bitcoin(with or without gui) on windows. The differences are all explained here: https://bitcointalk.org/index.php?topic=51226.0 It runs with vanilla bitcoin 0.5.0. I've seen the rpc thread crash in bitcoind a few times in my test environment but I've never heard of it happening in a production environment so it could just be something peculiar to my setup. I do put my poor little bitcoind through some pretty horrible contortions that probably don't happen on a normal pool setup. Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on November 23, 2011, 03:43:32 PM Quote 5619 [shared-httpclient-60] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc 5623 [shared-httpclient-60] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc 5627 [shared-httpclient-61] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [17:41:28.137] [WARN] Bad HTTP response connecting to auxDaemon http://localhost:8335. Work generated from this AuxInfo will not be valid for chain: namecoin. HTTP response code: 401 Dunno what is wrong. Using 0.3.24.64 and get that. Password AND username are correct. WorkMaker edition, pushpool compatibility is OFF Title: Re: PoolServerJ - Tech Support Post by: cablepair on November 27, 2011, 04:26:17 PM I created a PoolserverJ tutorial
anyone should be able to get PoolServerJ working if they follow this step by step: http://devtome.org/wiki/index.php?title=How_to_Setup_a_Merged_Mining_Bitcoin_Pool_with_PoolServerJ let me know what you think! Title: Re: PoolServerJ - Tech Support Post by: shads on November 27, 2011, 11:15:26 PM I created a PoolserverJ tutorial anyone should be able to get PoolServerJ working if they follow this step by step: http://devtome.org/wiki/index.php?title=How_to_Setup_a_Merged_Mining_Bitcoin_Pool_with_PoolServerJ let me know what you think! That's fantastic cablepair! I'll put a link to it on the PSJ site and in the other thread. My only suggestion is that you point people to download page rather than linking to the specific versions. I leave the old versions on the server so those links will be valid long after the psj version has incremented. Title: Re: PoolServerJ - Tech Support Post by: cablepair on November 28, 2011, 12:02:14 AM will do,
and thats mostly a rough draft I am polishing it up a bit more Also just want to let you know I started from scratch when testing this tutorial to make sure everything worked the way I laid it out I tested on a old dell with a Pentium 4 1.7 Ghz CPU and 256 mb ram and PoolServerJ is mining on both BTC/NMC networks right now with no problems talk about efficiency! :) Title: Re: PoolServerJ - Tech Support Post by: pooler on December 01, 2011, 11:55:50 AM Any chance PoolServerJ will support difficulties less than 1?
I have tried setting it up for Litecoin (current difficulty is about 0.66), but with version 0.4.0rc2 all I get is a bunch of Code: com.google.bitcoin.core.VerificationException: Difficulty target is bad: 40474064220290374717375238241067511033434108403022755503819899011072 Title: Re: PoolServerJ - Tech Support Post by: doublec on December 01, 2011, 12:33:29 PM I created a PoolserverJ tutorial Why do the conf files for bitcoin/namecoin in the tutorial specify "rpcallowip=*". Doesn't this open the JSON-RPC port of the daemon for anyone to connect to? This gives access to 'sendtoaddress' and other commands for sending coins out of the wallet. Or am I missing something?Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on December 01, 2011, 12:48:37 PM I created a PoolserverJ tutorial Why do the conf files for bitcoin/namecoin in the tutorial specify "rpcallowip=*". Doesn't this open the JSON-RPC port of the daemon for anyone to connect to? This gives access to 'sendtoaddress' and other commands for sending coins out of the wallet. Or am I missing something?However I do that but I have a firewall and I open up the port to the IP's I trust, in other words IP's I own and control. Title: Re: PoolServerJ - Tech Support Post by: cablepair on December 01, 2011, 02:57:49 PM I created a PoolserverJ tutorial Why do the conf files for bitcoin/namecoin in the tutorial specify "rpcallowip=*". Doesn't this open the JSON-RPC port of the daemon for anyone to connect to? This gives access to 'sendtoaddress' and other commands for sending coins out of the wallet. Or am I missing something?This is an interesting security concern you bring up and very valid. The idea of the tutorial is to be something for people who really have little or no idea what they are doing. It does not seem very plausible however that there are going to be people out there scanning IP addresses for open RPC ports to that may have used my tutorial. I tried to make it as fool proof as possible thus the reason for the *, people have different network setups and I am trying to eliminate needless problems and the possibility that this could turn into an actual security incident seems very remote to me. I am doing some polishing up soon of this tutorial and I will take this in mind. Thank you. Title: Re: PoolServerJ - Tech Support Post by: cablepair on December 01, 2011, 04:26:29 PM So I thought about it for a sec and your right about the security issue and in that setup it's not needed to allow rpcallowip=* anyways. It's just a habit I got into when helping people to setup pools to skip over needless problems
So I finished polishing up the tutorial today http://devtome.org/wiki/index.php?title=How_to_Setup_a_Merged_Mining_Bitcoin_Pool_with_PoolServerJ I also included step by step instructions on how to access the database with phpmyadmin and add a worker. Also if anyone would like to see a public pool in action that I setup check out http://pool.devcoin.org Of course it is for mining devcoins and not Bitcoins. Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on December 01, 2011, 05:43:25 PM This still does not answer my problem.
Title: Re: PoolServerJ - Tech Support Post by: cablepair on December 01, 2011, 05:45:02 PM Quote 5619 [shared-httpclient-60] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc 5623 [shared-httpclient-60] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc 5627 [shared-httpclient-61] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [17:41:28.137] [WARN] Bad HTTP response connecting to auxDaemon http://localhost:8335. Work generated from this AuxInfo will not be valid for chain: namecoin. HTTP response code: 401 Dunno what is wrong. Using 0.3.24.64 and get that. Password AND username are correct. WorkMaker edition, pushpool compatibility is OFF why not upgrade? I may be able to help you but I need a little more info do you want to send me your config? send to tom@devcoin.org and I will see if anything pops out at me are you using coinbassing? local work generation? Title: Re: PoolServerJ - Tech Support Post by: g2x3k on December 12, 2011, 04:50:34 PM have to vote on poolers suggestion it would be nice if worked with diff being lower then 1
Title: Re: PoolServerJ - Tech Support Post by: Furyan on December 16, 2011, 04:36:38 PM Has anyone added MS SQL support to PoolServerJ?
Because it uses JDBC this should be (almost) trivial as MS SQL is fully ODBC 92 compliant, just wondering if anyone's made the effort to actually write the associated bit of code. I can dive in myself, I'm reasonably proficient in Java but I look to save time where possible :) Also... shads.. you're outdoing yourself man... I'm very impressed with the built-in coinbasing & work generation now. It eliminates almost all of the custom mods I had made to my version of bitcoind, which lowers my support profile and barrier to upgrades. Really impressed here. Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on December 16, 2011, 05:21:31 PM Has anyone added MS SQL support to PoolServerJ? Yes he has done an amazing job.Because it uses JDBC this should be (almost) trivial as MS SQL is fully ODBC 92 compliant, just wondering if anyone's made the effort to actually write the associated bit of code. I can dive in myself, I'm reasonably proficient in Java but I look to save time where possible :) Also... shads.. you're outdoing yourself man... I'm very impressed with the built-in coinbasing & work generation now. It eliminates almost all of the custom mods I had made to my version of bitcoind, which lowers my support profile and barrier to upgrades. Really impressed here. Title: Re: PoolServerJ - Tech Support Post by: mu50stang on January 09, 2012, 09:57:13 PM I keep getting this message everyone once in a while. I was wondering what it meant or if it was an issue.
5470046 [HttpClient-upstream-work-submit-handler-38] WARN org.eclipse.jetty.util.log - EXPIRED ContentExchange@1769400994=POST//127.0.0.1:8444/#8 Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on January 09, 2012, 10:33:54 PM I really hope PSJ soon gets completed X extensions.
Such as X-rollntime etc. Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on January 10, 2012, 12:12:53 AM Shadders
If you are not coming back? Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 10, 2012, 12:21:55 AM ive been wondering the same thing :(
Title: Re: PoolServerJ - Tech Support Post by: mu50stang on January 10, 2012, 02:55:35 AM JSON-RPC getmemorypool update failed.
Whats happens when I get this error. Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 10, 2012, 03:21:14 AM I already told you what happens
your running your pool on the same box as Ubuntu xwindows and your actively using xwindows and browsing the web with firefox and all kinds of other crap and its slowing the already less then capable machine down and Bitcoin RPC cant keep up with requests from the Pool I saw all the processes on that machine, you cant expect the pool to operate at full speed when your running it as a workstation computer for web browsing and all kinds of regular use, there are not that many resources available to that machine to begin with - you need them reserved for the pool - running a pool takes a sh1t load of resources dude its not like a regular thing - especially when you are merged mining three different coins running a pool takes a lot of resources and if the machine its on inst super fast it takes a dedicated one at the very least. Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on January 15, 2012, 05:27:51 PM Quote 5619 [shared-httpclient-60] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc 5623 [shared-httpclient-60] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc 5627 [shared-httpclient-61] WARN org.eclipse.jetty.util.log - Unknown Security Realm: jsonrpc [17:41:28.137] [WARN] Bad HTTP response connecting to auxDaemon http://localhost:8335. Work generated from this AuxInfo will not be valid for chain: namecoin. HTTP response code: 401 Dunno what is wrong. Using 0.3.24.64 and get that. Password AND username are correct. WorkMaker edition, pushpool compatibility is OFF Thanks to cablepair this is fixed. However, I encountered another problem. After a while PSJ hangs on windows causing Bitcoin-Qt to crash as well. Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 16, 2012, 05:20:18 PM ive already addressed this issue
Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on January 16, 2012, 08:24:51 PM I was browsing on your comments in this thread, and there was nothing about PSJ crashing ?coind. Even namecoind crashed. After trying to restart PSJ via Ctrl+C the threads dont quit so I have to manually kill the java process
Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on January 16, 2012, 08:48:06 PM I was browsing on your comments in this thread, and there was nothing about PSJ crashing ?coind. Even namecoind crashed. After trying to restart PSJ via Ctrl+C the threads dont quit so I have to manually kill the java process It crashes my ?coind I have them set to auto restart.Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 17, 2012, 12:21:01 AM yeah
the funny thing is the last two times one of my pools crashed bitcoind with poolserverj it was because it solved a block i wish shads would come back and continue developing this... btw: Right now I am merged mining btc/nmc/dvc with poolserverj and attempting to add i0 ad ix later tonight am i the first person to do this? anyone else attempt more than just nmc with psj? Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on January 17, 2012, 12:31:02 AM Do all the standard precompiled clients of all alt-chains support merged mining? I.e do I need to compile them with mm support? Cause bitcoin has the rpc command getmemorypool, but namecoin does not.
Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 17, 2012, 12:34:17 AM not all chains do
btc/nmc/dvc/i0/ix are officially merged compatible right now, but im sure doublec's patch could be applied to any of them. Title: Re: PoolServerJ - Tech Support Post by: doublec on January 17, 2012, 01:18:47 AM not all chains do btc is only able to be used as a 'parent' chain. It can't be an auxiliary chain. It requires a block chain fork for a chain to be changed to support use as an auxiliary chain.btc/nmc/dvc/i0/ix are officially merged compatible right now, but im sure doublec's patch could be applied to any of them. Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 17, 2012, 01:21:02 AM i understand that :)
my only concern right now is the way poolserverj uses weighting for merged mining im having a bit of a difficult time trying to determine what the best weight is for bitcoin as parent and nmc/dvc/i0/ix as aux Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 17, 2012, 06:33:17 PM Well I have bad news - and a very good reason why we need shads (or some other very skilled and brilliant coder) to come work on this awesome project!
After extensive testing on multiple pools and also getting reports from other pool admins I have come to the conclusion that (although its supposed to) merged mining of more than one aux chain does not work with PSJ at the current time. You can add multiple merged mining aux chains, and you can have everything running pretty with no errors but the only blocks that will ever solve are the parent (bitcoin) and which ever aux chain you declare first. I have tested this on multiple pools with multple aux chains multiple times in multiple different scenarios and I am 100% convinced of this to be true if anyone can prove me wrong I would love to see it but unfortunately I know I am right. I assume since at the time he created PSJ / NMC was the only merged mining compatible aux chain he was not able to actually test if this worked or not. Shads we need you!! Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on January 17, 2012, 07:02:06 PM Well I have bad news - and a very good reason why we need shads (or some other very skilled and brilliant coder) to come work on this awesome project! After extensive testing on multiple pools and also getting reports from other pool admins I have come to the conclusion that (although its supposed to) merged mining of more than one aux chain does not work with PSJ at the current time. You can add multiple merged mining aux chains, and you can have everything running pretty with no errors but the only blocks that will ever solve are the parent (bitcoin) and which ever aux chain you declare first. I have tested this on multiple pools with multple aux chains multiple times in multiple different scenarios and I am 100% convinced of this to be true if anyone can prove me wrong I would love to see it but unfortunately I know I am right. I assume since at the time he created PSJ / NMC was the only merged mining compatible aux chain he was not able to actually test if this worked or not. Shads we need you!! Sorry I did not know you were testing this but Shadders told me it only works for one aux chain. Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 17, 2012, 07:52:11 PM Did he say if/when he is going to fix it? This is too good of a project to let die
Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on January 18, 2012, 12:38:40 PM Did he say if/when he is going to fix it? This is too good of a project to let die Last time I talked to him was when he posted and said he would be back during the holidays so I don't know if he is coming back.Title: Re: PoolServerJ - Tech Support Post by: MORA on January 18, 2012, 05:28:55 PM Sorry if this may be horribly obvious.
I got the poolserver working on litecoin, and added a few clients to it, they were hashing away and getting longpool events. However I dont see shares being logged, neither to DB or file. As I understand, a share is each time cpuminer prints out a stat line, right ? In that case it should have logged a few 100shares, but no errors and no data in the shares file. When starting it, it does say RETRY a few times, but then runs and looks to be working. Any ideas what could be the reason for no log? Title: Re: PoolServerJ - Tech Support Post by: DavinciJ15 on January 18, 2012, 05:33:38 PM Sorry if this may be horribly obvious. You did not give PSJ permissions also you need to turn on trace debug in you settings file to see errors on the screen. I got the poolserver working on litecoin, and added a few clients to it, they were hashing away and getting longpool events. However I dont see shares being logged, neither to DB or file. As I understand, a share is each time cpuminer prints out a stat line, right ? In that case it should have logged a few 100shares, but no errors and no data in the shares file. When starting it, it does say RETRY a few times, but then runs and looks to be working. Any ideas what could be the reason for no log? Title: Re: PoolServerJ - Tech Support Post by: MORA on January 18, 2012, 07:46:30 PM You did not give PSJ permissions also you need to turn on trace debug in you settings file to see errors on the screen. Permissions should be ok, in MySQL I granted it all, and I just tested that I can insert to shares table with same login, also it didnt complain about the user logins, that I created in user table (but then again I didnt check with a user that would fail, dont know if it falls back to no check if theres DB problems). enabling trace=all gives alot of these [20:39:05.159] TRACE[blockmon_firecheck] Sleeping timed block check cycle for source: litecoin-1.litecoin 0ms [20:39:05.169] TRACE[blockmon_firecheck] Firing timed block check for source: litecoin-1.litecoin overdue by 10ms but even with those removed form the log, there does not seem to be any actual errors logged. Title: Re: PoolServerJ - Tech Support Post by: cablepair on January 18, 2012, 08:18:37 PM do you import the poolserver.sql tables into your database and make sure the ma mappings are correct in the psj conf?
Title: Re: PoolServerJ - Tech Support Post by: MORA on January 18, 2012, 08:52:53 PM do you import the poolserver.sql tables into your database and make sure the ma mappings are correct in the psj conf? Imported yes.I didnt change the mappings, but used those in single mine example. I have checked that the fields exist. Title: Re: PoolServerJ - Tech Support Post by: Retard on January 22, 2012, 06:17:19 PM how must it look when the deamons are on a different server?
for example Merge Mining Bitcoin // Namecoin server #1 192.168.1.0 PoolserverJ #192.168.1.1 Code: ################################################################ Any Idea ? Title: Re: PoolServerJ - Tech Support Post by: 50BTC.com on February 02, 2012, 05:23:10 PM We are evaluating PoolServerJ for our mining pool, 50btc.com, as replacement for pushpoold. There are few problems we have encountered during testing; can anyone help with them?
We are running Scientific Linux 6.1, java version java-1.6.0-openjdk-1.6.0.0-1.40.1.9.10, poolserverj 0.4.0rc7 (rc2 + rc7 patch), stock bitcoind 0.5.2. First problem is that currently PoolServerJ doesn't support postgresql properly. For example, with settings Code: db.engine=postgresql [20:54:18.678] Connecting to DB URL: jdbc:postgresql:pool//dbserver:5432/public?autoReconnect=true and then always connects to localhost, not "dbserver" If I understand correctly, specifying connection string in jdbc:postgresql:<database> form can be used only for localhost connections, according to documentation http://jdbc.postgresql.org/documentation/80/connect.html (http://jdbc.postgresql.org/documentation/80/connect.html). So jdbc happily ignores dbserver and port, which makes poolserverj connect only to localhost. We wouldn't mind to fix that issue, but there are no sources for this part of server (shadtools-sql), even in source repository there is only binary .jar. Therefore, we really can't do anything. Currently, for testing we have installed redirecting proxy for postgresql which forwards requests from localhost to real database server, but for production it would be nice to fix that issue properly. This problem is present both in 0.4.0 and git version. Second problem is that we want users to authorize with any password, as long as they are registered on pool. There is auth engine called AnyPasswordWorkerAuthenticator which supposed to do the trick, but it doesn't do as advertised. Namely, it does allow to log in with any password, but not without password - when logging in with username only (we tried guiminer+poclbm and minerd) it still returns "401 Unauthorized". Of course, it's set up as it's supposed to Code: authenticatorEngine=com.shadworld.poolserver.servlet.auth.AnyPasswordWorkerAuthenticator and I have looked at its simple code a few times but still can't figure out why it won't allow empty password. Could it be that there is a bug in other code which rejects empty password before it's processed by AnyPasswordWorkerAuthenticator? Title: Re: PoolServerJ - Tech Support Post by: EnergyVampire on February 07, 2012, 07:48:21 AM Hello, I get this error
Code: Exception in thread "block-chain-tracker" java.lang.NullPointerException when starting up. Using: poolserverj-0.4.0rc2 Title: Re: PoolServerJ - Tech Support Post by: Remember remember the 5th of November on February 15, 2012, 07:11:07 PM Even though I do
Quote source.local.1.rewriteDifficultyTarget=0000000000000000000000000000000000000000000000000000333300000000 ###default true = set to false if you want to PoolServerJ as a proxy for non-pool mining source.local.1.rewriteDifficulty=false or even Quote source.local.1.rewriteDifficultyTarget=0000000000000000000000000000000000000000000000000000333300000000 ###default true = set to false if you want to PoolServerJ as a proxy for non-pool mining source.local.1.rewriteDifficulty=true The difficulty is NOT rewritten. It stays at it's default state Title: Re: PoolServerJ - Tech Support Post by: 12gaFacelift on February 23, 2012, 12:18:14 AM Someone to install PoolServerJ + Frontend : Win xp - xamp server . first to test and if its working then another box can be used to go public. PM me
thx Title: Re: PoolServerJ - Tech Support Post by: mich on February 29, 2012, 10:43:50 AM With merged mining poolserverj writes 'upstream_result' for bitcoin only? How to catch namecoin's upstream_result?
Title: Re: PoolServerJ - Tech Support Post by: cablepair on February 29, 2012, 11:55:25 AM its in there you just have to change the table section of the config to how you want it to report to your database
Title: Re: PoolServerJ - Tech Support Post by: mich on February 29, 2012, 01:13:01 PM its in there you just have to change the table section of the config to how you want it to report to your database You mean 'our_result_bitcoin' and 'our_result_namecoin'? But these columns is our markers - accepted or rejected shares, and I asking about markers of winning shares. Something like upstream_result_bitcoin and upstream_result_namecoin.Title: Re: PoolServerJ - Tech Support Post by: mich on March 01, 2012, 10:40:54 AM nobody knows?
Title: Re: PoolServerJ - Tech Support Post by: mich on March 12, 2012, 10:00:58 AM Code: 4153182 [HttpClient-upstream-work-submit-handler-38] WARN org.eclipse.jetty.util.log - EXPIRED ContentExchange@1175760389=POST//127.0.0.1:8332/#8 How to fix it? Title: Re: PoolServerJ - Tech Support Post by: cablepair on March 12, 2012, 08:08:15 PM that means its not connecting to bitcoind
is this happening all the time or just temporarily when you first start up? because if its not happening all the time I would not worry about it Title: Re: PoolServerJ - Tech Support Post by: mich on March 13, 2012, 03:11:25 AM Not every time, random from 5 to 30 min. And when it happens phoenix miner disconnect, then connect back in few seconds.
Title: Re: PoolServerJ - Tech Support Post by: Internet151 on May 12, 2012, 02:18:57 AM Has anyone gotten this to work under Windows and Bitcoin-qt 0.6+?
Title: Re: PoolServerJ - Tech Support Post by: maxcarjuzaa on June 04, 2012, 12:38:42 AM Hi I am running poolserverj with litecoind.
In order to test it I am running one miner (minerd) , but it had not solve any shares yet and if I connect it to my usual pool I get a share every 10 seconds or so. Do I miss any configuration? Do you have any idea? Thank you. Max Title: Re: PoolServerJ - Tech Support Post by: cablepair on June 05, 2012, 07:02:34 PM Hi I am running poolserverj with litecoind. In order to test it I am running one miner (minerd) , but it had not solve any shares yet and if I connect it to my usual pool I get a share every 10 seconds or so. Do I miss any configuration? Do you have any idea? Thank you. Max If memory serves , I dont think lite coin compatibity was ever actually achieved Title: Re: PoolServerJ - Tech Support Post by: Flowz on July 06, 2012, 11:52:38 AM Hi,
I'm currently running PoolServerJ, and it working out great! Getting 23Gh/s! There is only one thing that concerns me a lot. I've been getting a lot of 'Broken Pipe', 'EofException' and 'connection refused' errors, with a lot I mean non-stop outputting those exceptions. Everything is still working though, I just wonder why those exception are poping up in such a giant number. ~ Flowz Title: Re: PoolServerJ - Tech Support Post by: Flowz on July 06, 2012, 06:13:55 PM Furthermore I would like to point out that,
I get a error which bugs down the whole system: java.lang.OutOfMemoryError: GC overhead limit exceeded Temporary solution: -XX:-UseGCOverheadLimit (This means it won't look if the garbage collector is like using 98% of the CPU or not, which wil decrease the pool performance a lot I think) Or I could increase the max heap size: -Xmx1g I have 8gig of RAM memory, what is the best heap size for that server? ~ Flowz Title: Re: PoolServerJ - Tech Support Post by: mich on July 27, 2012, 04:55:45 PM How to setup log rotation for poolserverj's log files? (by logrotate)
Title: Re: PoolServerJ - Tech Support Post by: Bit LC Inc. on September 18, 2012, 03:56:21 PM WARNING: With the 0.7.0 release of bitcoind - getmemorypool is removed, which cases the internal work-generation to fail.
Patches for poolserverj needed. Title: Re: PoolServerJ - Tech Support Post by: Lomax42 on September 21, 2012, 06:18:24 AM Can I get the source code (Mini Http Proxy mini-proxy.tar.gz) would like to add there a separate authorization! powernet34@gmail.com Thank you!
Title: Re: PoolServerJ - Tech Support Post by: OgStar on October 04, 2012, 10:58:26 AM Can anyone tell me which bitcoin daemon version is the best for PoolServerJ?
I know 0.7 won't work, but will anything below it work? Because I'm trying to figure out the reasons of some bugs I've been getting. And what about namecoind? What are the patches that it needs to make getmemorypool work with it, and where to find it? Thank you! Title: Re: PoolServerJ - Tech Support Post by: Flowz on October 12, 2012, 06:34:41 PM Can anyone tell me which bitcoin daemon version is the best for PoolServerJ? Since nobody has answered I'll reply back to you.I know 0.7 won't work, but will anything below it work? Because I'm trying to figure out the reasons of some bugs I've been getting. And what about namecoind? What are the patches that it needs to make getmemorypool work with it, and where to find it? Thank you! As far as I know, from a performance point of view, the 4diff patched bitcoind is the best way to go. http://poolserverj.org/documentation/performance-memory-tuning/ https://github.com/bitcoin/bitcoin/pull/426 The last patch I remember coming out was a beta patch 4diff with a 0.5. Kind regards, Flowz Title: Re: PoolServerJ - Tech Support Post by: sippsnapp on October 30, 2012, 02:52:07 PM Anybody here who can tell me what am i doing wrong?
Code: root@j064:/opt/poolserverj-0.4.0rc2/bin# java -classpath poolserverj.jar:../lib/*:../lib/lib_non-maven/*:../lib/plugins com.shadworld.poolserver.servicelauncher.PoolServerService start ../conf/poolserverj.conf If its caused by a wrong bitcoind build, which one is the correct one? [source please] Title: Re: PoolServerJ - Tech Support Post by: Flowz on October 31, 2012, 05:15:40 PM Anybody here who can tell me what am i doing wrong? Code: root@j064:/opt/poolserverj-0.4.0rc2/bin# java -classpath poolserverj.jar:../lib/*:../lib/lib_non-maven/*:../lib/plugins com.shadworld.poolserver.servicelauncher.PoolServerService start ../conf/poolserverj.conf If its caused by a wrong bitcoind build, which one is the correct one? [source please] Are you only trying to mine namecoin's? 1. Make sure the information you set in the config file is correct, as to what you use to run your bitcoind! -> A pretty common problem. From what I'm reading, you're only trying to mine namecoins: Code: [14:46:56.302] Chain name: namecoin In most cases chain id 1 is the bitcoin chain, and chain id 2 is namecoin. (You've edited the config to not mine bitcoins I suppose by just changing the bitcoin information to bitcoin information?) As far as I know you must run both bitcoind and namecoind for merged mining to work. The namecoind is working properly, I suggest you to check if you bitcoind is running properly with the correct settings/config! Title: Re: PoolServerJ - Tech Support Post by: sippsnapp on October 31, 2012, 06:46:04 PM I now have disabled namecoin/merged mining, i only care for bitcoin now.
I still need a correct release for bitcoin to run poolservj. Title: Re: PoolServerJ - Tech Support Post by: Flowz on October 31, 2012, 08:57:34 PM I now have disabled namecoin/merged mining, i only care for bitcoin now. I still need a correct release for bitcoin to run poolservj. It doesn't matter which release to be honest. On the PSJ-site under the 'fine tuning' tab you'll find the patch by JoelKatz for a certain bitcoin release which allow more connections to the daemon. Title: Re: PoolServerJ - Tech Support Post by: nyusternie on December 13, 2012, 01:10:28 AM Greetings,
I would like to reach out to anyone that is still using PoolServerJ as an "active/production" pool server. I have about a month off during the holidays and I see it being spent in the Bitcoin community. The last post on the official website "PoolServerJ 0.4rc1 WorkMaker Edition" was made on Nov 8 11'. I did see an update to the codebase on https://bitbucket.org/shadders/bitcoin-poolserverj/ on Oct 20 12', so I don't know where things stand right now. Does anyone know if this project is still active? I've cloned the repo onto my GitHub account (just not a fan of Mercurial) to research the codebase, but it seems extremely outdated now (with Stratum and GetBlockTemplate being the norms now), so I'm trying to decide how to proceed with my own endeavors towards a Java-based mining server. Any suggestions would be appreciated. Thanks, Shomari Title: Re: PoolServerJ - Tech Support Post by: RoboCoder on January 03, 2013, 02:07:57 AM Greetings, I would like to reach out to anyone that is still using PoolServerJ as an "active/production" pool server. I have about a month off during the holidays and I see it being spent in the Bitcoin community. The last post on the official website "PoolServerJ 0.4rc1 WorkMaker Edition" was made on Nov 8 11'. I did see an update to the codebase on https://bitbucket.org/shadders/bitcoin-poolserverj/ on Oct 20 12', so I don't know where things stand right now. Does anyone know if this project is still active? I've cloned the repo onto my GitHub account (just not a fan of Mercurial) to research the codebase, but it seems extremely outdated now (with Stratum and GetBlockTemplate being the norms now), so I'm trying to decide how to proceed with my own endeavors towards a Java-based mining server. Any suggestions would be appreciated. Thanks, Shomari I just started using it myself.. I am using it for solomining though and have not put a front end on it at this point. Just thought this would be more efficient than mining directly against the bitcoind. I am using the .7 version. As I understand it - i don't need the patched version if i am using this newer version - would love some other opinion on that though. I see a huge fluctuation in the hashrate reported by PSJ every 20-30 seconds or so and I use bfgminer as my clients and it appears that they are getting a lower hashrate by shares accepted than i would normally against a regular pool. Wondering if that is due to Longpolling vs. stratum. I am using the .4rc7 workmaker version. PSJ gives decent stats on getworks and inound work - but i wish it would give more stats on the shares being tested back to the daemon. I would actually lilke to see more stats in general by miner made available directly from the management interface. Would certainly be willing to help test any work you do - and would definitely be willing to contribute funds toward development of stratum support and maybe a management client with stats reporting and more detail/monitoring by worker. Title: Re: PoolServerJ - Tech Support Post by: RoboCoder on January 03, 2013, 02:17:54 AM Also would like to note that by switching to the 32bit java and incrreasing the jvm memory size the hashrate reported by PSJ did improve..
Title: Re: PoolServerJ - Tech Support Post by: nyusternie on January 04, 2013, 10:28:52 PM @RoboCoder - I have only spent a short time testing PSJ. Mainly to make sure it worked correctly so that I could study the codebase. My immediate goal is to gain a complete understanding of the inner working of Bitcoin (protocols, community, problems, etc). As I'm much stronger in Java than C, PSJ seemed to be the best starting point. BitcoinJ (https://code.google.com/p/bitcoinj/) has also a great codebase to learn from.
As the original author is unreachable, I've opted to start from scratch (learning along the way) in building a fresh JAVA pool server. I've also been studying Eloipool's codebase (https://gitorious.org/bitcoin/eloipool), which is Python3, and it seems to be pretty solid. I've got a very VERY basic implementation up and running in Java, but its not quite ready for public testing yet. PSJ gives decent stats on getworks and inound work - but i wish it would give more stats on the shares being tested back to the daemon. I would actually lilke to see more stats in general by miner made available directly from the management interface. Would certainly be willing to help test any work you do - and would definitely be willing to contribute funds toward development of stratum support and maybe a management client with stats reporting and more detail/monitoring by worker. I totally agree, and plan on integrating a Reporting Engine with API support, run by a lightweight web server (lighttpd or similar).Can I ask you WHY you choose PSJ? Is it stricly because of Java or is there another reason? I'll be sure to let you know when I have something that is worth-while testing. Title: Re: PoolServerJ - Tech Support Post by: RoboCoder on January 05, 2013, 03:28:44 AM @RoboCoder - I have only spent a short time testing PSJ. Mainly to make sure it worked correctly so that I could study the codebase. My immediate goal is to gain a complete understanding of the inner working of Bitcoin (protocols, community, problems, etc). As I'm much stronger in Java than C, PSJ seemed to be the best starting point. BitcoinJ (https://code.google.com/p/bitcoinj/) has also a great codebase to learn from. As the original author is unreachable, I've opted to start from scratch (learning along the way) in building a fresh JAVA pool server. I've also been studying Eloipool's codebase (https://gitorious.org/bitcoin/eloipool), which is Python3, and it seems to be pretty solid. I've got a very VERY basic implementation up and running in Java, but its not quite ready for public testing yet. PSJ gives decent stats on getworks and inound work - but i wish it would give more stats on the shares being tested back to the daemon. I would actually lilke to see more stats in general by miner made available directly from the management interface. Would certainly be willing to help test any work you do - and would definitely be willing to contribute funds toward development of stratum support and maybe a management client with stats reporting and more detail/monitoring by worker. I totally agree, and plan on integrating a Reporting Engine with API support, run by a lightweight web server (lighttpd or similar).Can I ask you WHY you choose PSJ? Is it stricly because of Java or is there another reason? I'll be sure to let you know when I have something that is worth-while testing. Howdy! I choose PSJ primarily because i run windows servers and am not very experienced with the vagaries of Linux - and i can run PSJ (java) on windows pretty easily. I am come from a different development background for code/web - i am a ms developer so vb and c are my prefered languages and for web scripting (are you ready for this) i am old school cold fusion - been developing in that since version 2 - actually met Jeremy Allaire years ago when he ran the company and i was on a development contract for y2k.gov (done in CF) and Allaire wanted to do a case study on it! I am WAY out of the normal developer profile for the bitcoin world! Also C <-> Java is pretty easy cross training. Also do not have a lot of time to develop large apps so wanted something where the work was already done. And mining directly against the bitcoind is somewhat unsatisfying as i use bfgminer and the only thing you see is a change in the best share difficultly solved. I actually had it running with the bitcoin-qt .63 and my miners got shares via longpoll but the hash rate reported by BFG on submitted shares is about 5% lower than when i mine against slush's pool with stratum. It seems to be working on feeding work to the miners but not really confident that a solution will get back to the daemon and get me the block. I have not looked at either the bitcoin daemon code or the PSJ code (yet) but am beginning to think the best way to figure out what might be going on is to reverse engineer the code. But it is soooo time consuming. Also because my goal was an internal mining "controller" for my own rigs, i think that i should approach it by just developing a scaled down app for my uses. Decisions, decisions.. RoboCoder Title: Re: PoolServerJ - Tech Support Post by: 13MSzfPPr4gXvusKJFAFR2EAN on April 10, 2014, 12:55:45 PM Can someone help me with poolserverj sources ?
In the sources which I have are some java files not included but needed. I am looking for the class or source of com.shadworld.cache.ArrayDequeResourcePool. Please send it to diamantminer@gmx.de Please help. Wily Title: Re: PoolServerJ - Tech Support Post by: sielaeparchen on May 01, 2014, 05:26:58 PM I am just examining the poolserverj sources. The first thing which I did was create 2 public repositories of those shadworld.com libraries not included in maven:
Here are the source repositories: https://github.com/archenroot/shadtools-util https://github.com/archenroot/shadtools-sql @Wily The class ArrayDequeResourcePool.java you are looking for is inside shadtools-util project, you can package and should work, search the repo, it is there Title: Re: PoolServerJ - Tech Support Post by: sielaeparchen on May 02, 2014, 06:13:44 AM We are evaluating PoolServerJ for our mining pool, 50btc.com, as replacement for pushpoold. There are few problems we have encountered during testing; can anyone help with them? sourcesWe are running Scientific Linux 6.1, java version java-1.6.0-openjdk-1.6.0.0-1.40.1.9.10, poolserverj 0.4.0rc7 (rc2 + rc7 patch), stock bitcoind 0.5.2. First problem is that currently PoolServerJ doesn't support postgresql properly. For example, with settings Code: db.engine=postgresql [20:54:18.678] Connecting to DB URL: jdbc:postgresql:pool//dbserver:5432/public?autoReconnect=true and then always connects to localhost, not "dbserver" If I understand correctly, specifying connection string in jdbc:postgresql:<database> form can be used only for localhost connections, according to documentation http://jdbc.postgresql.org/documentation/80/connect.html (http://jdbc.postgresql.org/documentation/80/connect.html). So jdbc happily ignores dbserver and port, which makes poolserverj connect only to localhost. We wouldn't mind to fix that issue, but there are no sources for this part of server (shadtools-sql), even in source repository there is only binary .jar. Therefore, we really can't do anything. Currently, for testing we have installed redirecting proxy for postgresql which forwards requests from localhost to real database server, but for production it would be nice to fix that issue properly. This problem is present both in 0.4.0 and git version. Second problem is that we want users to authorize with any password, as long as they are registered on pool. There is auth engine called AnyPasswordWorkerAuthenticator which supposed to do the trick, but it doesn't do as advertised. Namely, it does allow to log in with any password, but not without password - when logging in with username only (we tried guiminer+poclbm and minerd) it still returns "401 Unauthorized". Of course, it's set up as it's supposed to Code: authenticatorEngine=com.shadworld.poolserver.servlet.auth.AnyPasswordWorkerAuthenticator and I have looked at its simple code a few times but still can't figure out why it won't allow empty password. Could it be that there is a bug in other code which rejects empty password before it's processed by AnyPasswordWorkerAuthenticator? https://github.com/archenroot/shadtools-util https://github.com/archenroot/shadtools-sql Title: Re: PoolServerJ - Tech Support Post by: sielaeparchen on May 02, 2014, 12:16:16 PM @RoboCoder - I have only spent a short time testing PSJ. Mainly to make sure it worked correctly so that I could study the codebase. My immediate goal is to gain a complete understanding of the inner working of Bitcoin (protocols, community, problems, etc). As I'm much stronger in Java than C, PSJ seemed to be the best starting point. BitcoinJ (https://code.google.com/p/bitcoinj/) has also a great codebase to learn from. As the original author is unreachable, I've opted to start from scratch (learning along the way) in building a fresh JAVA pool server. I've also been studying Eloipool's codebase (https://gitorious.org/bitcoin/eloipool), which is Python3, and it seems to be pretty solid. I've got a very VERY basic implementation up and running in Java, but its not quite ready for public testing yet. PSJ gives decent stats on getworks and inound work - but i wish it would give more stats on the shares being tested back to the daemon. I would actually lilke to see more stats in general by miner made available directly from the management interface. Would certainly be willing to help test any work you do - and would definitely be willing to contribute funds toward development of stratum support and maybe a management client with stats reporting and more detail/monitoring by worker. I totally agree, and plan on integrating a Reporting Engine with API support, run by a lightweight web server (lighttpd or similar).Can I ask you WHY you choose PSJ? Is it stricly because of Java or is there another reason? I'll be sure to let you know when I have something that is worth-while testing. do you have some codebase repo? I am examining now java pool, so if you implemented something interesting, let's share. |