To understand the material well, we strongly recommend reading the article “What is mining? Good luck in mining.” And even better - the entire Crypto Bible, which contains our best articles about the principles of operation of cryptocurrencies, mining and other related topics.
Ethereum mining pool. Source: 2Miners.com
Let's turn to the 2Miners Ethereum pool. The pool uses the PPLNS payment system, and the difficulty of the shares is indicated on the main mining pool - 8.6G. It looks like the designation of a mobile Internet network from the distant future, but it is not. Begin.
Difficulty of balls. Source: 2Miners.com
What are balls?
The share is the result of the mining process. This result is sent from the miner to the pool and contributes to the search for a new block on the blockchain (confirming transactions in the process).
You can think of the ball as a mathematical problem solved using a random number . The miner tries many different random numbers until the solution is correct. The more random numbers a miner can try in the allotted time, the greater the likelihood of correctly solving a mathematical problem.
Miners solve mathematical problems and send solutions back to the pool. If they solve the problem correctly, they receive a block reward .
What are accepted balls?
As the name says, accepted balls are balls that were solved correctly and on time . At NiceHash you receive payment for each successfully accepted share that was sent to our stratum server.
Stale shares in mining: description
Stale shares literally translates from English as “belated share.” Actually, the definition itself already describes this phenomenon very well. Stale shares are shares for block XXX that are sent to the pool after block XXX has been found. That is, they are afterthoughts.
To better understand the phenomenon itself, we will give the most simple and understandable example. Let's say that there is a group of people (miners) to whom the presenter asks a question (searching for an answer - mining). The participants in this game take turns going through the options, voicing them to the presenter, until the correct answer is found. The answer has already been named, but for some reason one of the participants continues to go through the options - these are belated balls or stale shares in mining.
What are deflected balls?
Rejected balls are the term for all balls that are rejected for any of the following reasons:
- Stale share : The share was sent too late (possibly due to either high ping or connection problems). This is the only type of ball that is allowed in small quantities and is considered normal.
- Share above target : The problem is in your mining software. Check it and make sure it is configured correctly. It is also possible that the software is not compatible with NiceHash.
- Duplicated share : The share was submitted more than once and indicates a bug in your mining software or incompatibility with NiceHash.
- Other : Any other type of anomaly usually means there is a bug in your software.
The most common rejected balls are 'over target balls' and ' legacy balls' .
What is a good accept/reject ratio?
You should aim for 100% accepted ball and 0% rejected ball . In the long term, this is almost impossible, since there will always be latency between the miner and the NiceHash stratum server.
Of all types of deviations, only outdated balls are allowed (up to 1%-2% , depending on the algorithm). Any other rejected balls are a result of system misconfiguration and can potentially be eliminated.
Differences between balls and hashes
The system automatically adjusts the calculation complexity of the block signing key, which makes it difficult to calculate hashes as the overall network capacity increases. For example, Bitcoin blocks must be closed every 10 minutes. If more miners join the network or they upgrade their equipment, the settlement speed increases and the block closing time decreases. In response, the algorithm increases the complexity of the calculations and restores the duration of block closure.
By accepting hashes, the blockchain algorithm evaluates the complexity of calculations and weeds out keys whose complexity is “worse” than the specified one. The resource takes these hashes, which are not accepted by the blockchain, as proof of the work of each miner.
Blockchain requires a valid hash as PoW, but this indicator is not suitable for correctly accounting for pool performance. The probability of obtaining a valid key during solo mining is approximately 1 hash in a year and a half of continuous calculations. However, by participating in distributed computing, they contribute to the common good. It also depends on the quality of the data transmission channel (if access to the Internet is unstable, keys may be lost without reaching the recipient). The pool keeps a count of the number of accepted shares from each miner. The good ones are accepted as hashes, the bad ones serve as a measure of performance.
For this purpose, the resource sets its own difficulty criterion to help select good shares. The difference between a hash is that the hash meets the requirements of the blockchain, and the share meets the requirements of the pool.
For example, at a difficulty of 1000, the pool sets its own difficulty limit to account for eligible "parts". For example, 10. In this case, all “hashe candidates” whose complexity is below 1000 and above 10 are taken into account by the site as shares. If a participant is lucky enough to “get” a key with a difficulty above 1000, the pool will send it to the blockchain and receive a reward for its publication.
How to eliminate obsolete balls?
Stale shares are mainly caused by high latency between your rig and the NiceHash stratum server . Normal latency between the miner and NiceHash should be around 10-100 ms (the lower the better).
Stale shares can occur as a result of using a VPN or a slow Internet connection. Try disconnecting from your VPN or using a faster internet connection.
Note that some fast-changing algorithms are more prone to high latency than others.
Balls and mining safety
A common question among beginners is why a miner should send a valid share suitable for signing a data block to the pool. After all, it is more profitable to send it to the blockchain and receive the reward yourself.
The pool operating system is organized in such a way that all balls carry information about the resource for which they are intended. Therefore, the resource will receive coins regardless of whether a valid key is sent directly from it or from another source. Balls without pool information are simply invalid.
Miners cannot “reassemble” the signature on their own. They do not receive the contents of the entire block for which the signature needs to be calculated. To work, all you need is a header with hashes of the actual contents of the block. That is, a worker without a pool is not able to collect and send a valid hash.
The only harm that a miner can theoretically cause is not to send the found valid key to the resource. Such an action causes more harm to the group than to an individual. Theoretically, if you have your own computing power, such an attack could bring some benefit. It is called a “block holding attack” and increases the chances of an attacker independently finding and presenting the hash. But such systematic actions are quickly calculated by resource owners when analyzing statistical data. And they can only benefit powerful opponents, and not small miners. Therefore, attempts to use such attacks in practice are extremely rare.
As a result, the balls are only used as proof of the worker’s participation in the search for keys and serve to calculate the final reward.
Checking the database for validity
Mailing to an unreliable database is a waste of money, the risk of being blacklisted by mailers, blocking in ESP platforms and simply ruining the sender’s reputation. You don't need all this, do you?
To check the list of contacts for validity, validators are used - special services (for example, mailvalidator.ru). They check mail in three stages:
- address syntax and format;
- domain and service verification;
- confirmation of mailbox activity.
This is what a complete address check looks like:
And this is an express check of the database:
Of course, you can check the database manually, but this is not the most effective story: this way you can only correct obviously bad emails and delete duplicates. Therefore, it is better to check the database automatically in the mailing platform or through special services.
Prevalidation and standardization of the base
To ensure that only correct addresses are included in the database, you can enable data verification at the stage of filling out the form. Prevalidation allows you to reduce the number of errors when filling out a form or correct them immediately.
Essentially, this is a script that checks in real time that the subscription form has been completed. It filters out “illiquid” information in advance: whether the @ sign is inserted (obviously a mandatory part of the email address) and whether the domain is spelled correctly (gmail instead of gamil).
There is also such a thing as database standardization - a separate check of the database for compliance with standards and correction of possible errors.
Example: there is a list of the correct spelling of common names, and if a person made a mistake during registration and wrote “Alksey”, the script will check his name, correlate it with the database, correct it to “Alexey” and enter it into the platform database. This will allow you to send good emails even if the person made a typing mistake.
You can’t rely on ping when choosing a pool
The miner has connected to the pool and begins sending shares to it. Sees that the balls are received in 50 ms (ping 50 ms). Then the miner connected to another pool and sees that the balls are accepted in 150 ms. “I’ll go to the first one,” he decided. It's better there.
This is fundamentally wrong, you can’t do this! When choosing a pool, instead of ping, you need to look at the steel ball statistics. Of course, you need to look at other factors, such as MEV rewards and how they are distributed, pool fees, ease of use, and so on.
Let's return to the balls. The 2Miners pool has detailed statistics for the share of each miner.
Thanks to the existence of Uncle blocks in the Ethereum network, any late share - even by 1000 ms or 2000 ms - can become a solution to the block. Yes, such a block will not give the full reward of 2 ETH or more. But they can give you 1.75 ETH for Uncle.
Many pools misinterpret the concept of stale ball (latecomers). Shara arrived half a second after the pool started sending out a new task - that’s it, for them she’s trash. This is not the case on 2Miners. We treat any balls with care and try to get the most out of them. Shara was late - no problem, maybe you can do Uncle.
When you start mining on a pool, look at the statistics of your shares. If you don't have a steel ball, then the pool is perfect for you. It makes no difference what your ping is.
Let us repeat, of course, there are other factors when choosing a mining pool: the method of calculating rewards, commission, MEV, and so on. In this case we are talking only about ping.
A lot of Uncle blocks are bad. Truth or myth?
Any pool a priori should try to maintain good communication with other network nodes in order to quickly receive information about new blocks, as well as quickly transmit information about those blocks that the pool itself has found.
On the 2Miners pool, we are very careful to ensure that the pool is connected to the maximum number of nodes around the world. In addition, we negotiate separately with other mining pools and connect our network nodes directly. This allows you to transmit and receive information about new blocks without delay.
By the way, we support a special service that shows statistics on the operation of 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,” this is most likely a lie. We are convinced that good mining pools from the TOP 10 are certainly able to buy and set up quality servers.
However, the number of Uncle blocks may increase for reasons beyond the pool's control. For example, earlier, when the most popular pool on the Ethereum network - Sparkpool - was located in China, there were situations when, due to the Great Firewall of China, the connection between the Chinese pools and the European/American pools was broken. There were large delays in the transfer of information between pools; there were many unlocks on the pools.
Below is an example of normal pool operation. By the way, the number of encles and the luck of the pool can always be viewed on the blocks page.
To take uncles or not to take?
Here the unequivocal answer is “TAKE IT!” And the more, the better. Judge for yourself, one pool found 100 blocks and 5 encles, and the second pool found 100 blocks and 10 encles. The difference in remuneration will be more than 3 percent, imagine.
You have completely confused me. So are uncles good or bad?
It is impossible to give a definite answer here - YES or NO.
If the anchor was formed due to the fact that the pool node is poorly connected to other network nodes, that’s bad. If the uncle is considered as an additional reward that might not have been there, then good.