- Bitcoin (from Wikipedia)
Bitcoin is a digital currency created in 2009 by Satoshi Nakamoto.
It is also the name of the open source software designed in order to use this currency.
Bitcoin is a peer-to-peer currency. Peer-to-peer means that no central authority issues new money or tracks transactions. These tasks are managed collectively by the network.
- Bitcoin benifits:
» Bitcoins are sent easily through the Internet, without trusting middlemen.
» Transactions are irreversible by design.
» Safety from instability caused by fractional reserve banking and central banks.
⇨ What is Bitcoin?
⇨ What is pooled mining?
Pooled mining is a system for many users to work simultaneously on the process to mine bitcoins.
⇨ How does the mining server calculate rewards?
This mining server (commonly referred to as a pool) uses a score based system to calculate rewards for miners.
Calculating rewards based solely on shares of equal value regardless of submission time is vulnerable to exploitation in several ways, which would reduce the reward for those who were using the pool as intended. Most of these exploitations involve connecting to the pool for the beginning of each round, and disconnecting after having submitted shares for a certain period of time, and then switching to another pool, or solo mining. In order to prevent people from exploiting the pool, and therefore reducing the reward for miners that are always connected, a system that devalues shares that are contributed early in the round is necessary.
The system to devalue shares as they age is commonly referred to as a score based system. This score is calculated using math that is detailed below, and is still based on the contributed shares.
If you are miner with a decently strong GPU that is always connected to the pool, your daily reward should work out to the same as in a share based system. People who disconnect from the pool often, or are mining with CPUs or low power GPUs will see a greater variance in their daily rewards, but will find that within a week the reward will be close to what they expect, and their average daily reward should be very close to their expected daily reward.
Score based payout model math:
base = 25 BTC
payout = (user_score / round_score) * base - donation_level
user_score - user score for current round (as sum score for submitted shares)
round_score - total score for current round
donation_level - user selectable value from 0 to 5%
Score for one share calculated as:
share_score = exp(current_round_time / score_magic_number)
current_round_time - time since round start (seconds)
score_magic_number - some magic number
⇨ What is long polling, and how is it different from the way miners usually work?
The short answer:
Instead of inefficiently requesting new work every 5 - 10 seconds the server sends new work only when the miner needs it. This means approx. a 2% increase in mining efficiency, because of rarely having stale shares, and far less server load for the pool operator.
Stale shares occur in two cases: if you have submitted a "good" hash of the "work" but someone had found a new block before you submitted your hash, or you submit a hash that is identical to one that has already been submitted.
Usually stale shares indicate that you were still processing old work and submitting hashes that were no longer valid. This happens less with long polling because the server informs the miner when a new block should be worked on, instead of waiting for the miner to ask.
The longer answer:
The way a standard piece of mining software works:
1) When the miner is run, the operator passes in a number of seconds after which the program should ask for more "work" (called a "getwork request" or just "getwork") or the program uses whatever its default number is (usually 5 or 10 seconds).
2) The miner requests this "work" from the server it is connected to.
3) The miner hashes this "work" in search of a hash for the next block.
4) Whether the miner has searched this header thoroughly or not, after the number of seconds set in step one, the miner asks for a new piece of "work" in order to make sure the hash it is searching for is still the correct one.
How long polling is different:
1) No special getwork options need to be included to enable long polling if your miner supports it, though you may still choose to include an option for the maximum time before a new getwork request is sent.
2) The miner sends a "getwork request".
3) If the server supports long polling, it sends a response with a long polling URL.
4) The miner then initiates a second connection with the server using the long polling URL, which is not answered unless the server finds a new block.
5) If the server either finds a new block, or is informed that one has been found by the bitcoin network, it sends a new piece of work to the miner on this second connection.
6) Upon receiving a piece of work on the long polling specific connection, the miner stops all current processing (which would now only be potential stale shares) and starts processing this new piece of work. The miner also opens up a another long polling connection.
⇨ What timezone is used on the site?
- The site uses UTC for any time calculations and time stamps.