I will change my miner to check lower targets. Keep in mind that GPUs are perhaps 30x+ faster than CPUs. Are you going to adjust the target to control the number of results you receive from specific client? Because with target suitable for getting 1 result per minute from CPU, you may receive 1 result per SECOND from a GPU.

It's too slow to do a full 256-bit comparison for each hash generated. Taking the lead from mainline bitcoin, miners tend to "cheat" and simply look for a certain number of zero bits in the area that, when byte-swapped, holds the high-order bits of a 256-bit number. My cpuminer stops if the top 32 bits are all zero. Mainline bitcoin stops scanning for hashes if 16 bits are zero:

I'm glad I understood your code well . I agree full check is too expensive. But what about compromise - check so many bits for zeros how many zeros is in target sent by getwork? Simply do not have hardcoded '32 bits' inside miner... This should be quite simple, fast and good enough!

By the way, I'm using modified version of your scanhash_c for checking proof-of-work in my server. My reward from first block found by cooperative mining is yours.

Keep in mind that GPUs are perhaps 30x+ faster than CPUs. Are you going to adjust the target to control the number of results you receive from specific client? Because with target suitable for getting 1 result per minute from CPU, you may receive 1 result per SECOND from a GPU.

You are right. Currently I have same target for all workers, but dynamic target depending on worker performance is in my TODO. I'm testing on Nvidia ION (~2000khash/s) and HD 5970 (~560mhash/s) and think target near 8 zeros should be fine for beginning. 8 zeros (32bit) gives one blocks every ~30 minutes on Nvidia and every tens seconds on Radeon, which is yet OK.

Hi all, I just started my own bitcoin mining server on http://mining.bitcoin.cz . Server was heavily tested on Testnet, but it is still beta stage software. But there is already ~600000khash/s of power and more will come tomorrow.

Server is based on principle which is discussed above and which satoshi accepted as possible. Server works with all CPU/GPU miners following standard getwork() interface - jgarzik's CPU miner, m0mchil's and Diablo's GPU miners. All needed information are on site homepage.

Sending rewards - when block found, 50BTCs are written to server's wallet, not on miner's wallets. Every miner can specify own 'sending treshold', which is minimum amount to send to his wallet. This should help with sending 0.0001 BTCs and so on. Currently the cron script for sending is disabled, I will process few first payments manually - just to be sure that everything is working fine.

If you are interested, please open account, enter wallet address, register own workers and start mining! Also report all troubles, I will work on them ASAP! Please be patient with short server outages in this stage. In the most cases, miners will solve that by restarting itself.

You are right, dynamic targets are on the way. Don't forget it is beta. Current target is compromise for low-end and high-end machines. By the way, normal CPUs (say 1000khash/s) will compute current target about half an hour .

All financial computation are made multiplied by 10^8, so with maximal precision. If there will be still some rests after dividing 50BTCs, the rest is added to random worker which participated in mining. But don't forget we are talking about 'rests' on eighth decimal place...

Quote

Can you speak with the other pooled mining server so we can all work together.

Dunno because there is the doublec server using puddingcups code would be cool to add that extra 250M hash

AFAIK they use special protocol and different algo for counting shares. But they can change miners and connect us . But I'm not affraid that there will not be enough power. I have to optimize code very quickly to be ready for many fast GPUs.

I'm regularly getting the error on the m0mchil's GPU miner: "IOError: [Errno socket error] [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond"

I'm regularly getting the error on the m0mchil's GPU miner: "IOError: [Errno socket error] [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond"

Interesting. I have running m0mchil's here too and have no one error... Which is your ping to mining.bitcoin.cz? Server is located in London.