Bitcoin Forum
May 07, 2024, 02:49:53 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 »
341  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overclock monitor fanspeed GCN RPC linux/windows/osx 2.3.5 on: April 29, 2012, 12:52:59 AM
Morning all. There will be another quick release in succession as there is a problem with keeping up with slow responding pools when you have mutli-gigahash machines.

Is this by chance making cards 'sick' more than normal ?

I have been seeing alot of sick cards today since I upgraded from 2.3.3 to 2.3.5.

Also....
What happened to 'B-F-Jesus-Miner' ? Is everything back on track for a single iteration/unforked CGMiner ?

On one of my rigs, I suddenly had a lot of instability with 2.3.5 that resulted in GPUs getting SICK very quickly and often cgminer locking up completely and becoming unkillable. (even with kill -9).  I reverted to 2.3.4 and have been running smoothly for 3 hours so far. 

I haven't been able to pinpoint the problem.  Other rigs are fine (although all of the rigs are slightly different linux installs, so it's hard to know if it is a hardware difference or an OS difference or what). 
342  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 28, 2012, 03:13:00 PM
...
If a share is DOA or orphan it will still count as a real block. If you look at the source in main.got_response(header, request) the first thing it does is check if it is a real block. Only after that does it bother to check for DOA. CGminer will submit dead shares if you use --submit_stale, or if you are running a fairly recent version it will do this automatically. If you are using an old version of cgminer, and not using --submit_stale, then you could discard a valid block before it even reaches P2Pool.
So, you can confirm that a 10 second share that is effectively late (stale/rejected) will still make it all the way to bitcoind if it is a valid block?
So P2Pool already has this 2 way path?
A share that isn't valid for the share chain will still pay out to everyone and go to bitcoind if it is a block?
(or the share chain can also store invalid shares?)

If forrestv will confirm this - then that's good.


Here is the explaination forrest has given in IRC in the past...  If a share is stale/doa but still meets the current bitcoin difficulty requirements (aka it is a block), it is sent to the local p2pool node's bitcoind.  It is also sent to all of the node's peers.  Each of the peers also send the block to their own local bitcoind instances (in order to increase the speed of propagation through the bitcoin network).  However, each of the peers does not relay the stale share to any of their peers.

So it propagates partially through the p2pool p2p network and should be sent to at least 11 bitcoin nodes (1 bitcoin node from the finder of the block and the bitcoin nodes of the block finder's 10 outgoing p2pool connections).  If the block finder has any incoming p2pool connections, it will go to those p2pool peers as well.

A side effect of the fact that the stale share is not fully propagated through the p2pool network is that stale share/valid blocks are sometimes not announced on IRC because the IRC bots sometimes never hear about the stale share (because they are not a direct peer of the block finder).  We have seen this side effect several times (p2pool blocks have been found and not announced in IRC by any of the half dozen or so p2pool nodes that are connected to IRC and announcing blocks).

343  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 27, 2012, 05:31:02 PM
I am wondering if there is a better way.  simply look at all the shares since last block.
diff 1 shares for block = sum of difficulty of shares seen by node since last block
right?  

I don't fully understand the internals of the share chain distribution, but I think there are a couple problems that would have to be solved:

  • We have a significant number of blocks where the duration was longer than the length of the share chain.  So in order to add up shares after a block is found, I would have to invent my own persistence of the the share chain that never got cleaned up.  Not trivial or fun (and fun = motivation to do it)
  • The "hashes done by the pool" include hashes contained in stale shares that are not fully distributed through the p2p network.  Because those stale shares mostly could have been valid blocks, they need to be included in the luck calculation.  In fact a lot of our blocks actually were stale shares (as determined by the fact that they often aren't announced in IRC).  The current p2pool hashrate calculation handles this by counting the valid shares and then increasing the count based on the pool-wide stale rate.

It would be an interesting experiment (and much easier because you can ignore the first problem by picking blocks that are shorter than 18 or so hours) to spot check.  If you want to calculate how many hashes you think went into a few blocks, I can tell you how many hashes p2pool.info thinks went into it and we can see how much variation there is in the two methods.
344  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 27, 2012, 05:27:48 PM
I am wondering if there is a better way.  simply look at all the shares since last block.
diff 1 shares for block = sum of difficulty of shares seen by node since last block
right?  

I don't fully understand the internals of the share chain distribution, but I think there are a couple problems that would have to be solved:

  • We have a significant number of blocks where the duration was longer than the length of the share chain.  So in order to add up shares after a block is found, I would have to invent my own persistence of the the share chain that never got cleaned up.  Not trivial or fun (and fun = motivation to do it)
  • The "hashes done by the pool" include hashes contained in stale shares that are not fully distributed through the p2p network.  Because those stale shares mostly could have been valid blocks, they need to be included in the luck calculation.  In fact a lot of our blocks actually were stale shares (as determined by the fact that they often aren't announced in IRC).  The current p2pool hashrate calculation handles this by counting the valid shares and then increasing the count based on the pool-wide stale rate.
345  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 27, 2012, 04:17:29 AM
Thanks for all that.  If there is an error my guess is it is in the "average hashrate".  It might be better to simply count total shares (and dificulty) received by your node.  

That is exactly how pool hashrate is calculated, as far as I know.  p2pool does the calculation and publishes the hashrate at http://localhost:9332.  I just pull from that value and calculate an average over the duration of a block.

I will take a closer look at how the avg hashrate is calculated.  An error there would mean you are starting with "dirty data".

Agreed.  I have said basically that same thing several times in this thread.  If the hashrate reported by p2pool is too high, our luck will appear artificially lower than it actually is.  Forrest has several times reassured me that the hashrate calculation being done by p2pool is correct, but I have not validated that myself by reviewing code.


A clarification
Code:
"ActualShares":545905
You are calculating this by polling http://localhost:9332/rate periodically? how often?
then getting avg hashrate over the block?
then duration * avg hashrate = # of hashes?
then # of hashes / 2^32 = # of shares?

Yes.  I collect the pool's hashrate from the http://localhost:9332/rate API every 5 minutes.  Then calculate the average hashrate during the time between when blocks are found.  Then calculated # of shares exactly as you indicated (hashrate * duration / 2^32).  The only reason I use diff 1 shares instead of hashes directly is the convenience of using smaller numbers.

Raw hashrate data is here:  http://p2pool.info/stats

Note, hashrate stats are only 1 per hour for the first few months of p2pool's life because that is what forrest had available to backfill my database.  From the time p2pool.info was created forward (sometime in early Feb), hashrate data is in 5 minute increments.  The code that calculates the average hashrate actually calculates a weighted average so as to deal with mixed frequency of hashrate stats within a single block.
346  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 26, 2012, 12:34:35 PM
@D&T:

The '% of expected' round 'lengths' published on p2pool.info are uniformly distributed, and have a very regular mean of about 160% (p-value for the linear model is less than 10^-12). If the '% of expected' works the way I think it does (normalises round length to D) then I'd expect '% of expected' to be geometrically distributed and the average to be 100%.

I'm think I'm not getting something about the way the '%luck' is calculated?

Raw data is here:  http://p2pool.info/blocks

For each block, you can see:

  • The actual number of "difficulty 1" shares submitted before the block was found.  Note, that since we don't actually know how many "difficulty 1" shares were submitted, this is an estimate of how many difficulty 1 shares should have been submitted based on the average hashrate at the time and the duration of the round.  And so if the hashrate published by http://localhost:9332/rate is wrong, then this number of shares will also be wrong.
  • The estimated number of "difficulty 1" shares theoretically needed based on the bitcoin difficulty at the time

% expected for a single block is:  actual shares / expected shares

% luck over a 30 day window is (sum of expected shares for all blocks found within 30 days) / (sum of all actual shares for all same blocks)
347  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 26, 2012, 02:12:48 AM

Conventional pool rejected shares = invalid hashes + stale hashes (after Bitcoin LP)
p2pool DOA shares = invalid hashes + stale hashes (after Bitcoin LP) + "pre-orphaned" hashes (hash that would be 100% orphaned if submitted)
Only the last one is valid work which can solve a block.


I agree completely with this summary.. the percents I'm not sure about. I'm pretty sure the leads are worth exploring though. If we are mistakenly including too many dead hashes in the luck calculations then that is no good for the pools image.

p2pool.info relies entirely on the number reported by p2pool, itself, at http://localhost:9332/rate   If that is wrong, then the luck calculation will be wrong.  Fixing it is not something I can do.  The fix, if there is one to be made, needs to come from forrestv.
348  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overclock monitor fanspeed GCN RPC linux/windows/osx 2.3.3 on: April 25, 2012, 11:09:43 AM
I paid luke 5BTC for the share log solution:

http://blockchain.info/tx/7732db071b843e378b458b447c4962b0ffb22d638da77096238cd266fc847eef

ckolivas, if you don't like the share log idea and want to do something else officially, I'm willing to still pay you the original 15 BTC since I should have anticipated the fact that someone else might have created a solution in the short time between when I posted the request and when you saw the bounty and decided to do something else.

Just let me know what you prefer.
It's only money and you've already given some of it to luke who did the work. Why should I make you pay more than you originally offered? Luke's code is fine, but if you want me to include it, it'll have to be a proper pull request and fully documented as well since he'll get even more bounty according to your original offer if I include the code.

Gotta be quick to get the quick bucks it seems. I'll go back to the boring slow grind work instead Tongue
I commented on a couple of minor issues with his code, he modified it, and I've included it in my git tree now.

Awesome, thanks.

The remaining two bounty payments have been sent:

To Luke: http://blockchain.info/tx/ba031cdf4efdaf4a7f6bce52442539c6a415b5c612f194c04a4a4971cfdebb9b
To Ckolivas: http://blockchain.info/tx/a11d526aa66121ed4b0bb5cf828f2ab223e83a34471dbf6020e664dc219b52b5

349  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overclock monitor fanspeed GCN RPC linux/windows/osx 2.3.3 on: April 25, 2012, 12:49:13 AM
I paid luke 5BTC for the share log solution:

http://blockchain.info/tx/7732db071b843e378b458b447c4962b0ffb22d638da77096238cd266fc847eef

ckolivas, if you don't like the share log idea and want to do something else officially, I'm willing to still pay you the original 15 BTC since I should have anticipated the fact that someone else might have created a solution in the short time between when I posted the request and when you saw the bounty and decided to do something else.

Just let me know what you prefer.
350  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overclock monitor fanspeed GCN RPC linux/windows/osx 2.3.3 on: April 25, 2012, 12:32:52 AM
I can do it. Just trying to decide if it should be this way for everyone. Be aware that rejects are almost always rejected while meeting the target. They're rejected for other reasons.

Ok.  I'm fine with either adding the difficulty to the normal output as I originally suggested or creating a share log file as luke coded it (assuming we can get it working).

And I wouldn't expect this to change the reasons why shares appear as rejected.  I expect rejected shares are shares that cgminer thinks meet the target but that the pool rejected for whatever reason (e.g. they were stale).
That's fine. How would you want the difficulty displayed? I'm not really sure I understand the (0.999985) type value you're displaying in your sample.

I just used 0.999985 because that is the actual difficulty for a "diff 1" share for most pools since a diff 1 share is actually 0x00000000FFFF0000000000000000000000000000000000000000000000000000 but in practice most pool software actually uses 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF instead for simplicity of validation (they can just make sure that the hash starts with 8 zeros and don't have to do any actual large integer comparisons) and that target translates to slightly less than a difficulty of 1.0000.

So in other words, this is what I mean by difficulty:  https://en.bitcoin.it/wiki/Difficulty

Converting the target to difficulty is one of the things I didn't want to have to figure out myself in C/C++ Smiley  I have code to do convert between difficulty and target and the 'bits' representation of target that is actually used in a block, just not in C/C++.  So I don't care which format is used since I can convert it as part of my analysis.  I just suggested difficulty because it was terse.  Target is equally fine with me, but it would then probably have to be in something like a seperate share log as luke was doing since there is no reasonable way to output the massive hex target in the normal output.

P.S.  Luke sharelog is mostly working now, so if you like it, you're welcome to avoid more work.   If you don't want to accept luke's solution, I'll probably still pay him an extra 5BTC for his effort since it works and is useful.
351  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overclock monitor fanspeed GCN RPC linux/windows/osx 2.3.3 on: April 25, 2012, 12:07:36 AM
I can do it. Just trying to decide if it should be this way for everyone. Be aware that rejects are almost always rejected while meeting the target. They're rejected for other reasons.

Ok.  I'm fine with either adding the difficulty to the normal output as I originally suggested or creating a share log file as luke coded it (assuming we can get it working).

And I wouldn't expect this to change the reasons why shares appear as rejected.  I expect rejected shares are shares that cgminer thinks meet the target but that the pool rejected for whatever reason (e.g. they were stale).
352  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overclock monitor fanspeed GCN RPC linux/windows/osx 2.3.3 on: April 24, 2012, 11:03:26 PM
Wrote code to append a file with this format: timestamp,disposition,target,pool,dev,thr,sharehash,sharedata

Will edit-in an example to this post when I get a chance to test (currently doing an all-day test of some other code).

If you want to test it before me, here's a paste of the code. It at least compiles for Windows. Zero checking on Linux so far.

It compiles on linux but doesn't work.  The output is happening, but not to a file (it appears on screen no matter what I have tried to pass to the command line param) for each share there is also this error:

Code:
[2012-04-24 17:59:54] sharelog fwrite error
353  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overclock monitor fanspeed GCN RPC linux/windows/osx 2.3.3 on: April 24, 2012, 07:46:42 PM
I have a requested enhancement (see below for the bounty).  I have a need to log all of the shares that are found by cgminer (for statistical analysis purposes) and the existing information that is output is almost enough but In order to do my calculations, I need to know the target for the work that resulted in the share since I mine on pools that don't have a fixed share difficulty.

The current output looks something like this:

Code:
[2012-04-24 14:27:39] Accepted 00000000.131be987.c9501e82 PGA 0 thread 0 pool 1

My request is for some option to add in the target for the share.  To save output space, it would be preferable for it to be displayed as the equivalent difficulty and not the massively verbose hex target.  So as to not bother other cgminer users or those that are already parsing the current output, perhaps it should be optional (based on a new command line parameter, etc)?

I'm imagining something like:

Code:
[2012-04-24 14:27:39] Accepted 00000000.58373f06.7b5f26c7 (0.999985) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Accepted 00000000.4534557e.a78f6b4a (2.314230) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Accepted 00000000.db937fb0.34751330 (4.000000) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Rejected 00000000.ca984202.8376eec0 (0.999985) PGA 1 thread 1 pool 1
[2012-04-24 14:27:47] Rejected 00000000.714a3646.4348042c (0.999985) PGA 0 thread 0 pool 1

Or some other equally parse-able format that includes the timestamp, accepted/rejected, the share hash (or at least as much as is currently included), the difficulty/target, which device it was, and which pool it was (for cases where there are multiple pools configured).  It's fine if it also includes the thread (as shown above), but I don't need that information, myself.

I have looked at the code and I don't think this is super difficult, but I am not a skilled enough C/C++ programmer to do the enhancement myself with any confidence, so I will put up a bounty for it instead.  I know ckolivas is busy and/or on a break, so I don't mind if someone else does it and provides a patch.  That said, I'd prefer to see it incorporated into the mainline source code so that I don't have to worry about it breaking in the future, so I'm going to include some incentive for it to be merged as well.  Here are the bounties I am willing to pay:

  • 5 BTC to the author of a working patch against the current git cgminer source.
  • 5 BTC to the author of the patch if and when it gets merged into the cgminer source. This obviously means the change has to be done well enough that ckolivas is comfortable merging it.
  • 5 BTC to ckolivas if he merges the patch.

So that is 15 BTC to ckolivas if he does it all himself, or if it is done by someone else up to 10 BTC to the author and 5 BTC to ckolivas for merging it.

354  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 21, 2012, 08:10:09 PM
Poor connection to the bitcoin network could result in higher BLOCK orphans but p2pool has <1% block orphan rate which is similar to other pools.

We have 331 total blocks and 6 of them orphaned.  That's a rate of 1.8%.

The note about orphans on http://p2pool.info/ suggests that the real number is higher than that too. A pool can count every one of their orphans but we can't. Would be nice to know for sure one way or another if the block orphans are a big factor or not. (The share orphans are a non-issue)

Note, the orphans that are known (the 6 on p2pool.info) are already accounted for in the luck calculations (i.e. luck is not reduced by known orphans).  The only think that could, in theory, be making the luck look lower than it should is unknown orphans, and I don't think there are many of them.  While the statement I made on p2pool.info is technically accurate, I do scan blockchain.info regularly looking for orphaned blocks and it does a pretty solid job of knowing about all orphaned blocks because it connects to 3000+ bitcoin nodes.
355  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 21, 2012, 06:03:16 PM
Poor connection to the bitcoin network could result in higher BLOCK orphans but p2pool has <1% block orphan rate which is similar to other pools.

We have 331 total blocks and 6 of them orphaned.  That's a rate of 1.8%.
356  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 18, 2012, 04:15:42 PM
went from 91-92% efficiency running p2pool locally (over 100 shares) to > 100 % (only 31 shares so far but just one dead) running it on a virtual server in a good datacenter

Now that is interesting.

Can you dig into the stats and see why?

I have very high efficiency with my current p2pool setup.  Here are my current stats (it has been a week or two since I most recently restarted p2pool):

Code:
Shares: 896 (22 orphan, 10 dead) Stale rate: ~3.6% (2-5%) Efficiency: ~102.6% (101-104%) 

I have been consistently getting approx 3.5% stale rate for the past month or so, so this is not a fluke.  Here are some musings...

  • The hardware that p2pool and bitcoind runs on matters.  I went from a VM to a fast physical machine (for just p2pool and bitcoind--no change to miners) and that dropped my stale rate by half. My assumption is that CPU speed matters more than RAM amount as long as you have enough RAM that there is no swapping.  Disk performance may also matter for bitcoind.
  • The conventional wisdom on parameters for cgminer is not as relevant as people make it sound.  For example, I do not use 1 thread per GPU.  I found that to be irrelevent.  My settings vary from rig to rig (my rigs are not all identical GPU hardware or even SDK/driver version).  For each rig, I experimented with combinations of thread and intensity until I found the best hashrate and stale rate.  In all cases, I ended up with either 2 or 3 threads per GPU and intensity setting different than what people normally seem to use.
  • I don't have data to back this up because I don't have a "control" to compare against, but I suspect that connected-ness of p2pool matters a lot.  My node is an old node and so almost always has 40 incoming connections.  With only a few hundred nodes total, that means I am hearing about new shares directly from about 20-25% of the nodes instead of hearing about new shares second or third hand.

In my experience over the past several months, it was the hardware change that made the most dramatic and instant impact.  I went from "average" stale rate to "consistently 2-3% better than average" stale rate over night when I changed the hardware for my primary p2pool node.

Of course, I probably should just keep my mouth shut and enjoy my extra efficiency.  If everyone improves their stale rate, my great stale rate becomes just average again Smiley
357  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 16, 2012, 04:18:12 AM
The freakin' block index is now > 15GB when bitcoind is running. This is getting to be insane...
My whole Bitcoin folder is only 1.7GB...

I know, right?  This totally sucks.  Bitcoin is taking up all the space on my hard drive.  I mean, I only have a 10 GB hard drive...  oh wait, no I have a 2TB hard drive and the block chain is an insignificant blip on its radar.  Nevermind.
358  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 15, 2012, 07:03:30 PM
Had a storm last night and the damn power went out. Problem is I can't get to the rig and get it going again until 8pm my time (9:35 now).

This happend to me too once. Now I'm running vpn on router and I enabled Wake-On-LAN on rigs, so I'm prepared next time.

That's not a bad idea. I have have two psu's running my rig (on is piggy-backed on for 2 of the gpu's), so it wouldn't work for me. Sad

I just have all my hardware set to automatically start after a power failure.  And I have 1 rig that has two PSUs, but both PSUs are tied into the 24 pin motherboard connector (using a splitter) so that they both turn on and off with the computer.
359  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 10, 2012, 12:39:16 AM
I'm sorry, I mean I have always used -a
p2pool.info shows unknow
my challenge is to see how quickly someone can figure out my address


Ah, I see that something broke on p2pool.info.  I'll have to fix it.

Fixed it.  The updated version is being deployed now.

Also, I didn't understand your question until now.  But FYI, your payout address is exposed here:  http://bitpoppool.geekgalaxy.com:9332/payout_addr

360  Bitcoin / Pools / Re: [360GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 10, 2012, 12:24:53 AM
I'm sorry, I mean I have always used -a
p2pool.info shows unknow
my challenge is to see how quickly someone can figure out my address


Ah, I see that something broke on p2pool.info.  I'll have to fix it.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!