The ping or network speed is often the first thing miners look at when comparing mining pools. They see in their mining program how fast shares are sent to a pool and accepted. Say, for one pool it takes 50 ms (milliseconds), while for another – 150 ms. As a result, miners assume that the former is better than the latter. Are they right or wrong?
A share is a unit used to measure the work of a miner in a pool.
The interaction between a miner and a pool is quite straightforward. The pool sends a task to the miner. The miner sends solutions (that is, shares) to the pool.
On the screenshot below you see the mining software shows the shares being accepted by the pool.
What is Ping in Pools?
Ping in a mining pool is the time it takes for a share sent by a miner to reach the pool and get processed.
To process a share means either to accept or to reject it. Pools verify all incoming shares to make sure that solutions sent by miners are correct: obviously, they can’t trust miners blindly.
The PING command in Windows or Linux measures the speed of a server response. PING in mining programs measures how fast a mining pool server gets your share, processes it and gets back to you. That’s why mining programs call it “share accepted time” instead of PING.
Choosing Pools By Latency Is Wrong
Say, a miner connects to a pool and starts sending shares. He sees that shares are accepted in 50 ms (the ping is 50 ms). Then the miner connects to another pool and sees that shares are accepted in 150 ms. He thinks that the first one is better and chooses to stay there.
The problem is, it’s completely wrong.
When you choose a mining pool, you should look at stale shares rather than ping. It doesn’t mean you shouldn’t consider other things too, such as: MEV reward and its distribution, pool fees, usability, etc.
But let’s get back to shares. 2Miners pool features detailed share stats of each miner.
Shares can be:
- Valid – shares accepted by a pool. Miners are rewarded only for these shares.
- Invalid – shares rejected by a pool because they are invalid. In most cases it’s because of excessive GPU overclocking. Reducing it would solve the problem. How To Overclock Nvidia and AMD Graphics Cards on Different Algorithms
- Stale – shares not accepted by a pool because they come late.
Thanks to uncle blocks in the Ethereum network, any stale share, even after 1000 ms or 2000 ms, can become a block solution. Sure, such a block won’t bring you a full reward of 2 ETH or more. But as an uncle block, it can bring you 1.75 ETH.
Many pools misinterpret the concept of a stale share. If a share comes a second after a pool starts sending out a new problem, it’s discarded. 2Miners uses a different approach. We handle all shares with care and try to make the most of them. A share comes late? No problem, maybe we can create an uncle block!
When you start mining in a pool, study your share stats. If you don’t have stale shares, the pool is good for you. Your ping doesn’t matter.
Again, there are other things to consider when you choose a pool, like how you get paid, fees, MEV, etc. In this case, we are talking only about network speed.
Here is an example that proves our theory.
Let’s take two identical miners, with 500 MH/s each. The first has a ping to the pool of 50 ms, the second – 500 ms.
In one hour, the first miner sends 200 shares to the pool. All the shares are valid, and no stale shares are found. The second miner sends 200 shares to the pool in one hour. All the shares are valid, and no stale shares are found.
Both of them get the same reward. The former doesn’t get more because of a lower ping, and the latter doesn’t get less because of a higher ping.
Difference between Ethereum and Other Cryptocurrencies. Uncle Blocks
Uncle block is an important difference between Ethereum, as well as other Ethash coins, and all other cryptocurrencies. Block find time in Ethereum is very short: 13 seconds on average. Most cryptocurrencies have a longer block find time. In Bitcoin, a new block is found every 10 minutes. Once someone finds a new block, he should transmit information about it to other network nodes (miners) as soon as possible.
In Ethereum network mining pools would often find new blocks at the same time and would then compete against each other.
Thanks to uncle blocks, a mining pool that finds a block a little later than other pools can be rewarded. It also happens that two pools find a new block simultaneously, but one of them is connected with a greater number of major mining pools in the network than the other. In this case, the former gets a full block reward, while the latter gets a reward for an uncle block.
Current block reward in the ETH network is a little over 2 ETH on average. Reward for an uncle block is 1.75 ETH. The difference is minimal.
Read more about uncle blocks in the FAQ section of the pool: “My block reward is low or no reward. Uncle and Orphan blocks”, and in the article titled “Orphan, Stale & Uncle Blocks in Bitcoin and Ethereum”.
Having Too Many Uncle Blocks Is Bad. Myth or Reality?
It goes without saying that any pool should strive to maintain a good connection with other network nodes to get information about new blocks as fast as possible and send information about blocks found in the pool just as fast.
2Miners makes every effort to ensure the connection of the pool to as many nodes as possible all over the world. Plus, we cooperate with other mining pools and connect our network nodes directly. As a result, we send and receive information about new blocks without delays.
We also run a special page that shows the stats of network nodes in different mining pools: Ethereum Network Stats.
When you hear something like: “This pool has many uncle blocks because of bad servers,” it doesn’t make any sense. We are confident that good mining pools out of the top ten can buy and set up quality servers.
The number of uncle blocks can grow for reasons out of the pool’s control. When the most popular pool in the Ethereum network, Sparkpool, was located in China, the connection between the Chinese pools and the European/American pools was disrupted on several occasions due to the Chinese Great Firewall. Pools were exchanging information with long delays, and there were a lot of uncle blocks in pools.
Uncle Blocks: Yes or No?
Definitely yes! The more the better. See for yourself: one pool finds 100 blocks and 5 uncle blocks, the other finds 100 blocks and 10 uncle blocks. The difference in reward is more than 3%.
So are uncle blocks good or bad?
There is no definite answer to this question.
If an uncle block is a result of a pool node poorly connected to other network nodes, it’s bad. If an uncle block is an unforeseen additional reward, it’s good.
Bonus: Are Empty 2 ETH Blocks without Transactions Bad?
In this article, we established that if a pool has a large number of uncle blocks, it’s not necessarily bad. It may even be the contrary.
Now let’s talk about another myth: “Pools that mine 2 ETH blocks are bad”.
Here’s the thing. 2 ETH blocks are empty blocks that don’t contain any transactions.
The Ethereum node works in such a way that after it starts working on a new block, it creates “empty” blocks during the first 200–300 ms. There is no way around it. In other words, right after a pool finds a new block or receives information about a new block from the network, it’s “bare” in the first fraction of a second. The pool doesn’t have enough time to fill the block with transactions.
Again, considering that top pools can afford to buy and set up servers properly, 2 ETH blocks is a completely normal thing. On the contrary, if a pool received information about a new block 10 seconds ago and didn’t add any transaction in the block, it wouldn’t be okay. In this case, you can say that the pool is bad. But to be honest, it almost never happens.
Is there a way for a pool to solve the node issue? Yes, there is. A pool can set some sort of a timeout or delay. Say, a pool can hide information about a new block from miners in the first 500 ms after the receipt and keep sending them the old problem. As a result, instead of an empty 2 ETH block, the pool may find an uncle block worth 1.75 ETH. But 2 ETH is definitely better than 1.75 ETH. So such a correction wouldn’t make any sense.