Pages:
Author

Topic: DiabloMiner GPU Miner - page 45. (Read 866596 times)

full member
Activity: 373
Merit: 100
July 14, 2011, 01:36:51 AM
The binary is also updated. And don't put -o -p and -u args in quotes, thats nonsensical.
I'd watch myself before calling anything I don't understand nonsensical. Especially -p and -u arguments may contain special characters that should be escaped from the shell, so it's generally good practice to put them in double-quotes when using them in a shell script.
hero member
Activity: 602
Merit: 502
July 14, 2011, 12:50:51 AM
The binary is also updated. And don't put -o -p and -u args in quotes, thats nonsensical.

Thanks, I got it working and it's a little faster than poclbm. Are there stable releases or is everything just "up to date"? Not complaining, just asking Smiley

But now I have other problems. I am testing things out with a slow card (I am still thinking about investing in newer hardware) so I am running at ~15 Mhash/s with an ATI 5450 on Ubuntu 10.04. The miner runs, but after a while java pushes one of my CPU cores to 100% and stays there. My connection is a little unstable and sometimes the miner prints connection errors, but nothing else... Any idea?
legendary
Activity: 1162
Merit: 1000
DiabloMiner author
July 13, 2011, 10:28:37 PM
You initialise the networkStates array with a length of 0 if the url command line option is not used, resulting in an ArrayIndexOutOfBoundsException on line 427:
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at com.diablominer.DiabloMiner.DiabloMiner.execute(DiabloMiner.java:427)
        at com.diablominer.DiabloMiner.DiabloMiner.main(DiabloMiner.java:133)
Initialising it to 1 with the command line arguments:
Code:
-dd -o "swepool.net" -r 8337 -p "mypwd" -u "myuser" -w 128
I get the following exception:
Code:
Exception in thread "DiabloMiner GetWorkAsync for swepool.net" java.lang.NullPointerException
        at java.io.StringReader.(StringReader.java:33)
        at org.codehaus.jackson.JsonFactory.createJsonParser(JsonFactory.java:427)
        at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1285)
        at org.codehaus.jackson.map.ObjectMapper.readTree(ObjectMapper.java:1007)
        at com.diablominer.DiabloMiner.DiabloMiner$NetworkState.doJSONRPC(DiabloMiner.java:688)
        at com.diablominer.DiabloMiner.DiabloMiner$NetworkState$GetWorkAsync.run(DiabloMiner.java:815)
        at java.lang.Thread.run(Thread.java:680)

A little more testing without the url option might be in order...

I still have this error on Ubuntu 10.04. Did you fix it only in the code or are the binaries also updated?

The binary is also updated. And don't put -o -p and -u args in quotes, thats nonsensical.
hero member
Activity: 737
Merit: 500
July 13, 2011, 04:26:20 PM
But you should not call it HTTP or JSON-RPC then, if it merely happens to look similar.

Fortunately, the deepbit.net LP spec doesn't call it JSON-RPC.  And it does happen to be perfectly compliant use of HTTP (make a GET request; get back a response).
newbie
Activity: 25
Merit: 0
July 13, 2011, 04:17:21 PM
And the argument that a JSON-RPC request has to be a POST is irrelevant because the LP request as defined by the Deepbit spec is not a JSON-RPC request just because its response looks like a JSON-RPC response.
A a protocol is mutual agreement on proper procedure, so yeah, you can pretty well do anything you want if people play along. But you should not call it HTTP or JSON-RPC then, if it merely happens to look similar.
Diablo chooses to follow the very well established HTTP standard and the somewhat established JSON-RPC standard, rather than the quite ad-hoc LP spec. This is a good thing, even if current pool practice also accommodates the JSON-RPC-ish GET LP, as you indicate:

Fortunately, it's easy enough for pools and proxies to support both by not caring if there is a POST body or not.
hero member
Activity: 602
Merit: 502
July 13, 2011, 10:15:12 AM
You initialise the networkStates array with a length of 0 if the url command line option is not used, resulting in an ArrayIndexOutOfBoundsException on line 427:
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at com.diablominer.DiabloMiner.DiabloMiner.execute(DiabloMiner.java:427)
        at com.diablominer.DiabloMiner.DiabloMiner.main(DiabloMiner.java:133)
Initialising it to 1 with the command line arguments:
Code:
-dd -o "swepool.net" -r 8337 -p "mypwd" -u "myuser" -w 128
I get the following exception:
Code:
Exception in thread "DiabloMiner GetWorkAsync for swepool.net" java.lang.NullPointerException
        at java.io.StringReader.(StringReader.java:33)
        at org.codehaus.jackson.JsonFactory.createJsonParser(JsonFactory.java:427)
        at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1285)
        at org.codehaus.jackson.map.ObjectMapper.readTree(ObjectMapper.java:1007)
        at com.diablominer.DiabloMiner.DiabloMiner$NetworkState.doJSONRPC(DiabloMiner.java:688)
        at com.diablominer.DiabloMiner.DiabloMiner$NetworkState$GetWorkAsync.run(DiabloMiner.java:815)
        at java.lang.Thread.run(Thread.java:680)

A little more testing without the url option might be in order...

I still have this error on Ubuntu 10.04. Did you fix it only in the code or are the binaries also updated?
hero member
Activity: 737
Merit: 500
July 13, 2011, 08:03:55 AM
There is no reason to believe LP should be a GET

Except the fact that the person who invented it says it should be a GET in his documentation of how it should work.  But the intentions of the guy who defined the standard doesn't matter... 

And the argument that a JSON-RPC request has to be a POST is irrelevant because the LP request as defined by the Deepbit spec is not a JSON-RPC request just because its response looks like a JSON-RPC response.   Two different standards can have responses that look the same without being the same in all other ways.   

You've defined a new standard.  A "DiabloD3 Long Poll".  Cool.  But they people who are following the published guidelines for the "Deepbit Long Poll" are not idiots (as you appear to be implying).  They are just doing exactly what it says they should be doing.

It's a pointless argument.  Fortunately, it's easy enough for pools and proxies to support both by not caring if there is a POST body or not.
legendary
Activity: 1162
Merit: 1000
DiabloMiner author
July 13, 2011, 07:43:46 AM
Hi,

So just to be clear you are the only miner which actually does gets instead of posts on purpose.

I already fixed my code to deal with your special case but If you truly believe thats the correct way to do it can you please write it down somewhere? If you made a post which is something along the lines of How LP works and how I believe it should work it would make it a lot easier to develop.


Other way around. I never use GET and always POST. The HTTP spec is clear on this, if you have no message body in the request its a GET, if you have no message body in the response its a PUT, if you have both its a POST. JSON-RPC does the actual request mechanism in the JSON in the request, thus it is always a POST.

There is no reason to believe LP should be a GET (even though apparently poclbm and pheonix send GETs with empty message bodies expecting a JSON-RPC response, and pools actually allow this against both the HTTP and JSON-RPC specs), so it seems to be quite clear.
full member
Activity: 373
Merit: 100
July 12, 2011, 08:58:42 PM
Is said discussion recorded somewhere? I couldnt find it.
Try looking 2-3 pages up...
full member
Activity: 182
Merit: 100
July 12, 2011, 08:48:39 PM
Is said discussion recorded somewhere? I couldnt find it.
full member
Activity: 196
Merit: 100
July 12, 2011, 01:47:53 PM
Hi,

So just to be clear you are the only miner which actually does gets instead of posts on purpose.

I already fixed my code to deal with your special case but If you truly believe thats the correct way to do it can you please write it down somewhere? If you made a post which is something along the lines of How LP works and how I believe it should work it would make it a lot easier to develop.
legendary
Activity: 1162
Merit: 1000
DiabloMiner author
July 12, 2011, 02:07:01 AM
Is there somewhere which actually standardizes long polling? Or an alternate spec I missed?

Other than Tycho's writeup on it, nope. Its just a bad hack.
full member
Activity: 196
Merit: 100
July 12, 2011, 01:46:49 AM
Is there somewhere which actually standardizes long polling? Or an alternate spec I missed?
legendary
Activity: 1162
Merit: 1000
DiabloMiner author
July 12, 2011, 01:36:07 AM
Hello,

It appears that you use post instead of get when doing Long Polling. That is contradictory to the unofficial spec and really annoying when trying to debug software LP failures.

See https://deepbit.net/longpolling.php

-C00w

You missed the entire discussion on this. The spec is incorrect if it requires GETs for a JSON-RPC request.
full member
Activity: 196
Merit: 100
July 12, 2011, 01:14:00 AM
Hello,

It appears that you use post instead of get when doing Long Polling. That is contradictory to the unofficial spec and really annoying when trying to debug software LP failures.

See https://deepbit.net/longpolling.php

-C00w
newbie
Activity: 9
Merit: 0
July 12, 2011, 12:33:23 AM
It does make sense to load balance but for people with large hashing power.
For me for example it would decrease earnings, considering I don't have much hashing power (less than 400Mhps). If I split that, short rounds (less than 1-2 min) would be empty for me to often (been there seen that). And we surely need some sort of load balance/failover with all those DDoSes these days.

Maybe you could implement a switch of some sort, so people could test what is better for them?

Or... I simply switch to two smaller pools Smiley ...
legendary
Activity: 1162
Merit: 1000
DiabloMiner author
July 11, 2011, 09:13:21 PM
It seems to be using both pools I put in, roughly equally. I was expecting it to be failover (or is btcmine just failing a lot?)

I would prefer failover also.

It makes more sense to load balance to prevent a pool going down from slowing mining.

It also makes it harder for deepbit lol50% situations.
legendary
Activity: 1162
Merit: 1000
DiabloMiner author
July 11, 2011, 09:11:25 PM
Pretty much the same way, just remove all the spaces after the commas:
Code:
-u username1,username2 -p password1,password2 -o us.btcguild.com,pit.deepbit.net -r 8332,8332 -v 2 -w 128 -f 1
Note that only parameters related to pool connection accept commas; -v, -w and -f don't.

This.
legendary
Activity: 1162
Merit: 1000
DiabloMiner author
July 11, 2011, 08:44:03 PM
I just got this log, but it is the first time out of ~5 runs that this happened. I suspect that it is because deepbit kept timing out and one of the executions was null when the LP response came in.

Code:
[11.07.11 20:22:54] Started                                                  
[11.07.11 20:22:54] Connecting to: http://pit.deepbit.net:8332/, http://swepool.net:8337/
[11.07.11 20:22:55] Using Apple OpenCL 1.0 (Dec 23 2010 17:30:26)            
[11.07.11 20:22:55] Added GeForce 9400 (#1) (2 CU, local work size of 128)  
[11.07.11 20:22:56] DEBUG: swepool.net: Enabling long poll support          
[11.07.11 20:22:56] DEBUG: swepool.net: Enabling roll ntime support          
[11.07.11 20:23:24] ERROR: Cannot connect to pit.deepbit.net: connect timed out
[11.07.11 20:23:38] DEBUG: swepool.net: Long poll returned                  
Exception in thread "DiabloMiner LongPollAsync for swepool.net" java.lang.NullPointerException
        at com.diablominer.DiabloMiner.DiabloMiner.forceUpdate(DiabloMiner.java:536)
        at com.diablominer.DiabloMiner.DiabloMiner$NetworkState$LongPollAsync.run(DiabloMiner.java:919)
        at java.lang.Thread.run(Thread.java:680)
[11.07.11 20:23:55] ERROR: Cannot connect to pit.deepbit.net: connect timed out
[11.07.11 20:24:27] ERROR: Cannot connect to pit.deepbit.net: connect timed out
[11.07.11 20:24:58] ERROR: Cannot connect to pit.deepbit.net: connect timed out

EDIT:
It just happened again, same situation, similar log.

Update: Fixed race condition
member
Activity: 78
Merit: 10
July 11, 2011, 04:39:29 PM
It seems to be using both pools I put in, roughly equally. I was expecting it to be failover (or is btcmine just failing a lot?)
I would prefer failover also.
Pages:
Jump to: