Actually I am working with some small academic project right now and I am newbie in crypto currencies. This project is primitive mining pool for cryptocurrency, as a base cryptocurrency I am using dogecoin (don't ask why, i just liked the name). I've read a lot of information, looks through lots of projects and actually I've created it. So I could connect with the mining tool to my pool right now and start to mine. if I made everything correct I am sending difficulty=1 to client via stratum protocol and start to mine. The process looks fine and soon clients begin to submit lots of shares so I get some shares for difficulty 1. I need to calculate (my average hash rate for example for last hour) of the pool according to the shares amount I've get. I take a look to this page: https://en.bitcoin.it/wiki/Difficulty And I got two questions.
1) I've found that I need to calculate avg 4,294,967,296 hashes for difficulty 1 but as I've found my clients generate much less hashes (according to the mining tools info it's about 30khash/s in common) but they still sends lots of valid shares to server. So actually I can't understand - is that ok, that several desktop PC could generate a lot of shares for difficulty 1.
2) I can't understand the hashrate calculating algorithm. My final goal right now is to calculating of pool avg hashrate based on shares count, and difficulty which i send to my clients. I take a look to this What is the correct algorithm to calculate worker & pool hashrate and try to calculate hash rate according to my last hour of testing. Server got 120 new shares from miners its results in 143,165,576/s (143 mHashes) but the minners tools show other numbers.
Thanks in advance.