Let’s talk about ping (ping or latency), and how it affects the income of Etherium miners. We’ll also discuss an important question about Uncle Blocks and how their number on the pool affects miners’ income.
Many miners start comparing mining pools based on pings. They look in their mining software and see there the information about the speed of sending balls to the pool. Let’s say it’s 50ms (milliseconds) on one pool and 150ms on another. Then they conclude that the first pool is clearly better than the second. Are they doing the right thing? Let’s figure it out.
What is a ball on a bullet?
A sphere is the unit of a miner’s work on a pool.
The process of interaction between the miner and the pool is very simple. The pool sends the miner a job, that is, it tells him what task to solve and what to do. The miner sends the pool balls, that is, solutions (from the English word “share” – share).
What is a ping on a pool?
Ping on a mining pool – the time it takes for the balloon sent by the miner to reach the pool and be processed by the pool.
What does “processed” mean? It’s simple: accepted or rejected. The pool checks all the balls that come to it, whether they are correct solutions or not. That is, the pool can not take the miner at his word.
You have to understand that the PING command (in windows or linux) is how fast the server responded to you. The PING in the miner window is how quickly the mining pool server received your balloon, processed it, and told you that all is well. This is why it is not the PING in the Miner window, but the Share accepted time.
You can’t be guided by pings when choosing a pool
The miner connected to the pool and starts sending balls to it. He sees that balls are received in 50 ms (ping 50 ms). Then the miner connects to another pool and sees that the balls are received in 150ms. I go to the first one, he decides. It’s better there.
This is fundamentally wrong, you can’t do that! When choosing a pool, instead of a ping, you have to look at the stack-ball statistics. Of course, you also need to look at other factors, such as the MEV fee and how it is distributed, the commission of the pool, usability, and so on.
There are balls:
- Valid (valid) – balls accepted by the pool. Any pool will only pay for them.
- The invalid (rejected) balls are not accepted by the pool, because they were “broken”. In 99% of cases, this is caused by overclocking. Decrease overclocking. How to overclock Nvidia and AMD graphics cards for mining with different algorithms
- Stale – balls that were not accepted by the pool and arrived late.
Due to the existence of Uncle-blocks in the Ethereum network, any late balloon – even if by 1000ms or 2000ms – can be a block solution. Yes, they won’t give a full reward of 2 ETH or more for such a block. But they can give 1.75 ETH as for Uncle.
Many pools misinterpret the concept of stale-balls (latecomers). The ball came in half a second after the pool started sending out a new job – that’s it, it’s garbage to them. At 2Miners, this is not the case. We treat all balls with care and try to get the most out of them. If the balloon is late, that’s okay, maybe we can make a Uncle.
When you start mining on a pool, look at your stats. If you don’t have any steelballs, then the pool is great for you. It makes no difference what your ping is.
Again, of course, there are other factors when choosing a mining pool: the method of charging remuneration, commission, MEV, and so on. In this case we are talking only about the ping.
To prove our theory, let us give you a simple example.
There are two identical miners of 500 MH/s each. One has a ping to the pool of 50ms, and the other has a ping of 500ms.
The first miner sent 200 balls in an hour to the pool, all were accepted, no steal balls. The second miner sent 200 orbs in an hour to the pool, all were accepted, not a single steil-ball.
Both of them will get the same reward. The first miner did not get more because he has a small ping, and the second miner will not get less because of the large ping.
The difference between Ethereum and other cryptocurrencies. Uncle blocks
An important difference between Ethereum and other coins based on the Ethash algorithm and all other cryptocurrencies is the presence of so-called Uncle blocks. The Ethereum network has a very short block time: on average, new blocks appear every 13 seconds. Most cryptocurrencies have a higher time, for example, in the Bitcoin network new blocks are found every 10 minutes.
As soon as someone finds a new block, he must quickly and quickly pass information about it to other nodes – the network’s miners. In the Ethereum network, it is often around the same time that different mining pools find new blocks and compete with each other.
The concept of uncle-blocks allows you to encourage a mining pool that found a block solution a bit later than the other pool. It can also be the case that two pools found new blocks at the same time, but one pool is connected to more large mining pools in the network than the other. In that case, the first pool will get the full reward for the block, and the second pool will get the reward for the Uncle-block.
At the moment, the reward for a block in the ETH network is a little over 2 ETH on average, while a Uncle block costs 1.75 ETH. The difference is minimal.
Read more about Uncle-blocks in the pool’s FAQ “My Reward is Less Than It Should Be. Uncle and Orphan blocks” and in the article “Orphan, Stale and Uncle blocks in Bitcoin and Etherium mining. What they are, how they differ, and how much they bring”.
A lot of Uncle blocks are bad. Truth or myth?
Any pool must a priori try to maintain good communication with other nodes of the network, in order to quickly get information about new blocks, as well as quickly transmit information about the blocks that the pool itself has found.
At 2Miners, we are very careful to make sure that the pool is connected to as many nodes around the world as possible. In addition, we separately negotiate with other mining pools and link our network nodes directly. This allows us to transmit and receive information about new blocks without delay.
By the way, we support a special service that shows the statistics of the network nodes of different mining pools – Ethereum Network Stats.
When you hear phrases like “This pool has a lot of Uncle-blocks because it has bad servers”, it’s probably a lie. We are convinced that good top-10 mining pools are probably able to buy and set up quality servers.
However, the number of Uncle-blocks can grow for reasons beyond the pool’s control. For example, previously, when the most popular pool in the Ethereum network – Sparkpool – was located in China, there were situations when due to the Great Chinese Firewall the connection between pools in China and European/US pools was disrupted. Delays in transferring information between the pools were large, there were a lot of enclaves on the pools.
Below is an example of normal pool operation. By the way, you can always see the number of anchors and pool luck on the blocks page.
To take the Enclas or not to take them?
The answer is unequivocally “GET IT!” And the more the better. Judge for yourself, one pool found 100 blocks and 5 enclaves, and the second pool found 100 blocks and 10 enclaves. The difference in reward would be more than 3 percent, can you imagine.
You have completely confused me. Are the enclaves a good thing or a bad thing?
It is impossible to give an unambiguous answer – YES or NO.
If an anchor is formed because a pool node is poorly connected to other nodes in the network – bad. If the anchor is seen as an additional reward that might not have been there – good.
Bonus partition. Empty blocks of 2 ETH with no transactions are bad, right?
We’ve learned that a large number of Uncle-blocks doesn’t mean that the pool is bad. Perhaps it’s even the opposite.
Let’s now look at another misconception that says that “pools that mine blocks of 2 ETH are crap”.
Let’s decipher. Blocks of 2 ETH are empty blocks with no transactions.
Note that usually blocks of 2 ETH are formed almost immediately after the previous block was found. For example, see block 11,789,558 at 2 ETH, and a second before it was block 11,789,557. Do you see where we are going with this?
Because of the way Ethereum node works, in the first 200-300 ms of work on a new block, it “creates empty blocks”. And there is no getting away from that. In other words, if the pool just found a new block or just received information about a new block from the network, in the first split second the block is “bare”, the pool has no time to “score” the block with transactions.
Again, given that the top pools are able to buy and properly configure servers, a block of 2 ETH is normal. There’s nothing wrong with that. But if the pool got information about a new block 10 seconds ago, and then it didn’t include any transactions into the block, that’s trouble. You could say, indeed, that the pool is bad. But, believe me, such cases are rare.
Is there any way to solve this problem with the ETH node on the pool side? There is. You can put some kind of timeout, a delay. For example, for the first 500 ms after receiving information about a new block, keep the miners in the dark and continue to give the old task. The result will be that instead of an empty block at 2 ETH, the pool may find an anchor at 1.75 ETH. Which is better, 2 or 1.75? Of course 2! That’s why there’s no point in making such a “patch”.