text:
Merge Bitcoin Mining with Fold at Home!
I am new, but have a big idea about bitcoin.
There is a distributed computing project known as Fold at Home. What if its software were used for the generation of something instead of for a menial, useless task? Fold at home distributes datapackets that need to be worked on by computers. Once computers finish the work, they send a report of the data back to the host.
What if Bitcoin mining were, instead, Folding at home? if the programs could be made compatible, then bitcoin mining would also be donating something to a good cause.

It's a "good question" in the sense that it should have an answer on SE, but it's not innovative at all, it's been asked multiple times on the forum and answered on the wiki.

CoinLab is days away from releasing their HPC client which will start out doing Gene slicing, and soon possibly image and video processing work as well.  So GPUs formerly used for Bitcoin mining are being put to further good use.

Folding@home work is not compatible with the required properties of the work that needs to be performed for bitcoin. In particular, the computation work required for bitcoin mining needs to assure:

(a) difficulty of getting a 'good' result
(b) ease of verification of a good result once it is found
(c) precise scaling of difficulty depending on total network power.

The folding@home problems provide neither assurance of difficulty nor are in any way easy to scale depending on network power (since each folding problem is unique). They probably do meet the (b) ease of verification, but not the other criteria.

I think you forgot the most important requirement, that the problem is generated determinstically from a piece of data so that any change to the data make the solution invalid (so it can actually be used to verify a block of transactions). F@H problems, to be useful, must be generated by a central authority in a non-computational way.

yea, that too. :)

Trying to use Folding@home as a way to secure Bitcoin would be really hard if not impossible. You would need to encode Bitcoin-related data into your result (merkle root, previous block hash, etc.).
However, you could use Folding@home to create a centralised currency. Say, for every work unit completed, one would earn 1 Fold or something. Those could be traded between people and used like any other currency. This would work if there were some people wishing to trade anything of values for the Folds - perhaps some people who want to support the project would start buying them for money and start driving the economy this way. Perhaps it could be possible to use Folds to pay, say, 10% of your university fees. If there would be enough people that would wish for this monetary project to succeed, it could work, as long as you would trust the party responsible for managing the money.

And thses things exist already.  They're called karma points.  And three of them plus a quarter might pay for a phone call.
The reason Bitcoin's proof-of-work system is rewarded is because it is the only approach that allows a decentralized system of money to operate without being corrupted (e.g., having the currency inflated by political pressure, tainting or regulating who can accept it and for what purposes, etc.)

This doesn't work. Some problems:

You need work that is hard to solve, but easy to verify. Folding work is hard to solve and hard to verify.
You want work that is "useless", for market stability. If a cure for cancer is found then the value of folding drops significantly, and the value of the currency falls.
The difficulty of the work needs to be adjustable.

Agree with points 1 & 3, but 2 is highly debatable. Why would "useless" work be prefereable? I believe a more useful work would even make the currency even more valuable. And, why would protein-folding be completely useless once a cure for cancer's found? It may be the most visible application for protein-folding research, but it's certainly not the only one!!

I didn't say that finding a cure for cancer would make protein folding useless. I said it would make the value drop significantly. The point is that useless work is not subject to the volatility that comes with the varying usefulness of useful work.


text:
How does the mining process support the currency?
Why is mining Bitcoins necessary? Is it essentially a distribution mechanism to ensure Bitcoins are not held by a few (wealthy) individuals from the get-go who might just hoard Bitcoins rather than be encouraged to spend them?
Isn't the (growing) expense of mining Bitcoins going to have this effect in any case - specialist Bitcoin mining companies (with racks of expensive hardware) could effectively make it impossible for anyone else to mine Bitcoins - meaning the currency cannot filter down evenly through the network but ends up congealing around power users...

Changed 'underpin' to 'support'. I had to Google the word, I thought you mean 'undermine' at first.

See also this question about hoarding which addresses half of your question. People being encouraged to hoard Bitcoins doesn't matter because in order to hoard them, you first have to get them. So encouraging hoarding also encourages trading.

Mining is not just a way to ensure the initial distribution of bitcoins. It happens that coins have been distributed through mining, because it was easy and useful to do it this way, so this might be a bit misleading, but mining will remain essential even after all the bitcoins (~21MBTC) have been distributed.
Mining has not been designed to distribute coins. It's exactly the opposite: coins are distributed to attract miners. The network needs them.
Mining is the core mechanism that makes Bitcoin possible.
The bitcoin block chain (i.e. transaction history) needs to be updated continuously. In effect, one block is added to the chain about every 10 minutes. Mining is the little miracle that allows trust in the network as a whole, without trusting any single participant¹. The idea is to add some artificial difficulty to block creation, so that only a few blocks are presented to the network for consideration (and for validity checking). This way, the network can choose which block will be accepted as the next reference, while nobody has full control on block creation.
The hard work of miners that build those blocks must be compensated (hardware equipment and electricity are not cheap). A reward has therefore been included in newly created blocks. For now, the reward is constituted mostly by newly minted coins. But given that the mining process is essential to the bitcoin ecosystem, that reward must (and “hopefully” will) be replaced by fees, paid by transactors, when coin creation is going stop completely, in about 130 years.
—

1. Assuming no one has access to more than 50% of the total computation power of the network.

I guess you mean "trust" instead of "thrust". Can't edit yet myself.

This answer is copied from my answer on a duplicate question of this one: https://bitcoin.stackexchange.com/a/10351/1307

You should start here: http://www.youtube.com/watch?v=GmOzih6I1zs
As the video mentions, mining is needed to ensure fairness and for keeping th network stable, safe and secure.
Now, let's see what that means. But first a very brief explanation of the principle of mining.
Mining
The Bitcoin network consists of nodes that all store a database with all transactions, called the block chain. This database consists of a long chain of blocks, each holding one or more transactions. What miners basically do is bundling all unconfirmed transaction into a block. The form of the block must satisfy certain conditions before the block is considered valid. This condition is called proof of work and is not trivial to understand. When a miner finds a block that is valid, it can send its block to the network and others will verify it. When it is indeed valid, all clients will add it to their block chain. Every time a miner finds a valid block, it has the right to assign a certain amount of bitcoins to himself, called the block reward. They also get all transaction fees of all transactions included in his block. This way, new bitcoins are added to the network and it can be ensured that transactions can be confirmed.
Fairness
Since Bitcoin is peer-to-peer and there is no central authority to control it, every one can send any kind of transaction to the network, whether or not it is valid. You could simply send a transaction that sends someone else's coins to yourself.
Luckily no one in the network will accept your transaction. When you want to spend bitcoins from a certain address, you will need to sign the transaction with the private key of that address. Other clients in the network can verify that you own that private key because they have the public key. This method is based on public-key cryptography.
So when miners try to bundle unconfirmed transactions into a block, they first need to confirm every transaction to make sure that all transactions in its block are valid. When they are not, other clients will not accept the block they mined when they sends it to the network.
This way, miners ensure that people can only spend bitcoins they own.
Stability
This is the least difficult one to understand. The Bitcoin protocol sets the difficulty of the mining problem so that averagely every 10 minutes a new block can be found by some miner. This way, a transaction takes 10 minutes to be confirmed on average.
However, after a transaction has been included in a block, it still is not irreversible. This is not easy to understand, but when a miners try to mine a new block, they include in that block the number and the ID of the previous one. So let's say someone mined block 100, which follows number 99. It can happen that someone else didn't notice that someone found a valid block to follow on 99 and makes a valid number 100 itself as well, let's call it 100'. In this case, most clients will only accept the first block they received. But it can happen that another miner received 100' first and will find a block following on 100' and not on 100. Then we have following situation:
98 - 99 - 100
      \ _ 100' - 101'

When clients notice such a situation, they will always choose the longest existing chain (that only consists of block they think are valid). This means that block 100 will be discarded and that 100' and 101' or now the two last block of the main chain. This means that a transaction that was confirmed by block 100 is now possibly no longer confirmed. Luckily, the miners that found block 100' or 101' probably also knew of the transaction and most probably they also included it in one of those blocks. But it can happen that they did not and so a transaction can be undone.
For this reason, most clients and merchants require a transaction to be confirmed by at least 6 blocks. This means it must be included in a block that has at least 5 blocks after it.
The fact that a transaction will be able to be considered confirmed after averagely 1 hour, makes it a stable situation. It happens rarely that transactions confirmed for more than 1 hour will ever be reversed again.
Safety and security
The previous part about stability already included some security aspects of mining. It is clear that miners make the Bitcoin block chain trustworthy. When a transaction is included in a block and 5 or more other blocks have passed, you can be sure it is irreversible and safe to accept it as a payment.
It is also clear that the safety and security of Bitcoin as a payment system is in the hands of the miners and that every time one of them solves a block, he has the power to decide what transactions he accepted to the block chain.
Mostly, all miners are fair and they will include as much valid transactions as possible. Whenever a miner is not fair and it selectively excludes some transactions, some other miner will likely include it in the next block.
There is however one flaw. When a miner has more computation power than all other miners combined, it can always create new blocks at a faster rate than the others. This gives him much power over the block chain, and that is to be avoided at all cost. This flaw is named a 51% attack. This answer sums up the consequences of what could happen if someone would have 51% of the network computation power.
But this is a security flaw, what has this to do with why miners should mine? Well, as more people mine, the total computation power rises and it will be much much harder for someone to perform such a 51% attack. Currently, to own hardware capable of performing such an attack would be so enormously expensive that it is economically unfeasible to do, if not completely impossible. So, every miner tht contributes his power to the network ensures that only fair miners will find blocks and that the network will be safe for people to trust upon.

For the currency to work, the coins have to get out into the market somehow.  For Bitcoin to be decentralized, the distribution mechanism would have to be something besides some organization merely handing out or selling the initial coins.  Mining provides a solution to that, although one could argue whether there would be better ways to do this.
Mining does more than just control the initial distribution though; see this question for more details.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Does mining a block force others to restart their work?
Does mining a block mean that anyone else who was working on mining a block loses their progress and must restart?

Yes and no.
When a new block is created, everyone on the network must discard old work and use the new information provided (assuming they don't want to create forks). It does lead to some small performance loss.
On the other hand, creating a block is more or less like playing a lottery - there is no real "progress" per se, you are just trying more and more tickets until you win something. When a new block is created you don't have a situation of "10% left, I lost so much work", as there is no telling whether there actually IS a solution to the particular configuration of a block you were creating.
All in all, yes, everyone must start over when a new block is created, but they don't lose much (aside from some small performance drop due to stale shares).

So your odds of success don't increase as you try more numbers?

@Casebash The overall chance of success increases the more number you try, but the chance of finding a block per each try - does not. It's not like opening boxes and expecting to find a prize in one of them, where you know that having tried half of them already, the remaining half have a higher chance now, since there are less of them and there is still the same prize inside. It's like playing roulette - one spin does not affect the other.

@ThePiachu Couldn't a client just "ignore his update" and "compete for a fork" ?

@Pacerier It could, but in most cases they would lose. Even if they managed to create a fork soon after, the rest of the network would prefer the first mined block. In order to successfully force your fork, you'd have to not only catch up to the block that was mined, but mine another one on top of that before the entire network does the same with the other block. Unless you own a majority of the computational power of the entire network, you will most likely lose the race. Losing the race means you lose money.

In effect, every time someone sends a new transaction to the network that the miner accepts it changes the block that the miner is trying to solve, since the new transaction gets added to the currently unsolved block and which changes the hash.
But since solving blocks is a Poisson process there is no "progress" towards finding a block and these changes don't cause miners to lose progress.  Each hash you try either solves it or doesn't.

No, because there's no progress in mining blocks. If you've mined for 5 minutes and didn't find a block, you aren't any closer to finding it than when you started - the hazard function is constant.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
What is the maximum throughput of the Bitcoin network? (2013)
I have heard that the maximum block size means that the Bitcoin network has a maximum throughput. What is this maximum?

The current block size limit is 1MB, but this is likely to be changed in the future.
Transactions are about 500B, so the current limit is 2000 transactions per block, or about 3 per second.

Wow, that's slow. If Bitcoin keeps growing, they'll definitely have to increase the block size

Is this actually a current limitation regardless of the client implementation? Do you have a reference for that assertion?

@barrymac https://github.com/bitcoin/bitcoin/blob/ff4e3e63e776fb320b87d2506d911d5a7fa757a4/src/main.h#L32

IMO it's not so certain that the max block size will be increased in the near future. There's likely to be a lot of controversy about it. See http://keepbitcoinfree.org/

@theymos We found the same thing from via different paths! +1 for linking to the line of code responsible!

From the Scalability on the wiki page

Today the Bitcoin network is restricted to a sustained rate of 7 tps by some artificial limits. These were put in place to stop people from ballooning the size of the block chain before the network and community was ready for it. Once those limits are lifted, the maximum transaction rate will go up significantly.

I also found this talk by Peter Todd from  keepbitcoinfree.org on using off blockchain transactions to avoid hitting the main block chain with the full transaction load which was followed by good Q&A
There's also some charts comparing to other payment networks


text:
Is there a Bitcoin exchange comparison site (fees, details) like distrowatch.com or http://cmsmatrix.org/?
Is there anybody that knows of a site that does a fairly thorough comparison of all currently active exchanges, and their fees especially. Like there is distrowatch.com and cmsmatrix.org.
The closest i've seen is on the bitcoin wiki : https://en.bitcoin.it/wiki/Buying_bitcoins (and related pages)
anyone?

Would be a lot of work to build and maintain.
If the exchanges would show their fees (trading fee, cost of deposits, withdrawals, conversions, etc.) in a clear manner and communicate changes (rather than in-place ninja edits) it would be easier to manually collect this info.  Even the largest exchange is inconsistent -- one day announcements are on Facebook.  The next with a press release.  Then another on the forum.  Then on the support site.  And that is just one exchange! Sometimes these changes are bad news for the consumer (e.g., rise in fee) so they aren't well communicated either.

Try Exchange war:
https://exchangewar.info/
which shows even the most popular pairs for each exchange.

bitcoincharts.com pretty much is what you look for I think. They got a huge list of exchanges and detailed informations about each site.

They just show market info (high, low, bid, ask etc.), don't they? I don't see their fees in there anywhere, correct me if I'm wrong.

I agree; this is not a complete comparison of exchanges (the question mentions fees especially!) but only of their bids/asks.

Just create a new Bitcoin exchange comparison chart on 99Bitcoins.

Here is a bitcointalk thread where a member posted important statistics and reviews about some of the primary exchanges. This thread compares the following exchanges:
https://bitcointalk.org/index.php?topic=695082.0
Bitstamp
BTC-e
Bitfinex
BTCchina
HUOBI
LakeBTC
Kraken
CAVirtex
OKCoin
LocalBitcoins
ANX
hitbtc
CoinMKT
Bleutrade

You can see a full list of Bitcoin exchanges at http://bitcoinx.io/exchanges, although I don't see a comparison component per say; but there is a rankings list of top Bitcoin exchanges to see which one is better.


text:
How would interest and fractional reserve banking work in a limited money supply?
Suppose Bitcoin lenders (banks, creditors, investors) issue loans with interest. As the total supply of bitcoins approaches the 21M ceiling, the total amount owed in outstanding interest will exceed the money supply.
This is the same as existing banks: they actually hold only a fractional reserve of funds, and the economy as a whole owes itself more money than there is in existence.
The difference is that reserve banks can print more money (yes, with inflation). Bitcoin can't.
An economy can continue to operate, I assume as long as there is enough circulation for a debtor to pay back his interest. However, since interest is compounded, it grows at an exponential rate: over time, wouldn't the total debts eventually outstrip the coins in circulation available to repay them?
Would Bitcoin find itself in a situation similar to the current global economic crisis? How would it correct itself?

It doesn't matter very much because the economy can trivially create substitutes for currency. Anything that has the same capabilities as currency (fungible, easily exchanged, limited supply) can also serve as currency.
A good example would be a Mt. Gox code. Mt. Gox may or may not have 100% reserves, but it doesn't matter. A Mt. Gox code for 100 Bitcoins is basically as good as 100 Bitcoins. If you don't fully trust Mt. Gox, maybe it's as good as 99.5 Bitcoins.
Also, you can "print money" without actually being able to produce currency. For example, say I want to buy a car today and need 2,500 Bitcoins to do so. If someone loans me 2,500 Bitcoins in exchange for an insured IOU to pay 2,600 Bitcoins in six months, the 2,500 Bitcoins I borrowed to buy the car are still in circulation. But there is also now an IOU in circulation that is also worth 2,500 Bitcoins. As that note comes closer to maturity, it's value will go up. So just by time passing, the effective number of Bitcoins in circulation will go up.
This is bad news to the people who don't like the way a modern economy works, oppose fractional reserve banking and currency controls, and think that Bitcoins will bring on a new economy where banks can't create money. But I think it's pretty obvious that the same kinds of things will happen.
The whole Bitcoin system itself is an example of creating money out of thin air.

Good sir, I dare to disagree about the "bad news" in that those "Mt Gox promissary notes" and other IOUs can and will become a currency of their own, detaching from the Bitcoin value, simply because they will be clearly distinguishable. This is contrary to today where we can't differentiate where a dollar we hold comes from, leading to these inflation problems that we can hopefully leave behind in a Bitcoin world.

A check is clearly distinguishable from a dollar bill. A credit card or number in a bank account is clearly distinguishable from a check. The point is not that people can't tell, it's that so long as they work the same, people don't care.

A check is clearly distinguishable from a dollar bill, yes, but a dollar put into circulation by banks created through loans is indistinguishable from a dollar earned through "real" work or trade. Bitcoins on the other hand cannot be "copied" that way.

I don't see the difference. If I loan you 10 bitcoins in exchange for an IOU, the bitcoins are in circulation and so is the IOU and everyone can tell the difference but they trade the same. If a bank loans me $100,000 in exchange for a mortgage, the $100,000 is still in circulation and so is the mortgage and everyone can tell the difference but they trade the same. A bitcoin created by a loan would appear precisely the same. The loan would appear different, but nobody would care.

Well then let's agree to disagree, because I believe that people will care that the loan would appear different, just because they can (as opposed to today).

When a bank makes a loan, the majority of the money it lends does not come from its depositor's accouts, but is created out of thin air. The depositors can still make use of their money. When I loan you Bitcoins, I can no longer make use of those Bitcoins. That's the difference.

@Chris: It's precisely the same. In both cases, the loaned funds are still available for someone's use, and the loan itself acts as additional funds as well.

@DavidSchwartz: Consider banks which dealt in gold/gold receipts prior to central banking. They could issue more receipts than gold, even though it is essentially fraudulent. Bank runs happen when people find out about this. The threat of runs keeps their desire to commit fraud in check. Central banks "fixed" this by removing the gold from the equation, institutionalizing the fraud. However, this required the ability to essentially confiscate all the gold. That would be rather difficult to do with Bitcoins.

Chris: The point is, they always found ways to "fix" it. So unless there is no way to fix it with Bitcoins, they'll find a way to fix it. As I explained in several places, there are many ways to fix it with Bitcoins. Circulating notes as funds is the most obvious way. No fraud is required to circulate a note as a fund -- we do that with checks.

Why is But there is also now an IOU in circulation that is also worth 2,500 Bitcoins?  Isn't this inherently worth less due to the risk that the loan won't be paid back?

@gerrit: No. At least, not unless the organization that made the loan is foolish. If some sane lender decides to lend me 2,500 Bitcoins, they'll make sure that the risk-adjusted value of the loan is at least 2,500 Bitcoins -- otherwise they're losing money.

The limited money supply isn't actually an inherent problem for payment of interest.  As long as the people being paid the interest are spending it back into the economy (presumably the banks, creditors, and investors have expenses, right?), then there will be an opportunity for the person who owes the interest to earn or buy it back and use it to pay down their debt--with each cycle of this the debt gets further paid off, no matter how limited the total amount of currency. To understand how this works, imagine that the person who borrowed the money is working as a janitor at the bank.  The interest they pay funds their wages, so the same coins can keep circulating in a loop as the debt is paid off.
Speaking more broadly, most people don't just borrow more and more and more all the time.  During the course of operations a responsible business or individual tends to pay down their debt, so the total amount of debt wouldn't automatically grow simply due to compounding.
The larger problem for an economy with a limited total currency supply is that, given ongoing economic growth, the value of the currency itself will tend to rise.  This makes any "reasonable"
interest rate end up being negative, and in that case why would anyone lend money anyways?  There are ways around this involving futures markets, etc.  However, it's quite unlikely that someone would choose to denominate their debt in bitcoins in the first place because it would be so confusing.  Remember, no reasonable person believes that bitcoins are going to replace all other currencies.  So probably, you would just borrow money denominated in one of the many other possible currencies instead, and use it to buy bitcoins if you needed them.

The inability or unwillingness of financial entities to return 100% of moneys taken as interest to the economy was the primary reason that usury was punishable by death for much of human history. Of course banks still don't return 100% of interest moneys to the economy so I'm not really sure why we stopped thinking it was a bad thing. In any case, it's not a core Bitcoin problem so much as a core economics problem that will apply to anything used as currency.

Re: "the total amount of debt wouldn't automatically grow simply due to compounding": it's true that an individual tends to repay their own debt but at the same time the money plus interest they pay back can be re-loaned to others. As long as there is outstanding debt in the totality of the system, the total amount owed will continue to grow even as individual loans are repaid. No?

From the bank's perspective, yes.  But from an economic perspective you will eventually saturate the number of people/businesses who want loans.

David is right that Bitcoin in itself does not prevent the practice of fractional reserve banking.
But the difference with Bitcoin is that unlike gold, you now have a digital, easily transferable, easily storable, easily secured currency. Banks would need to fight much harder for deposits now because there is alot less reason to trust a bank with your bitcoins when you can just store it in a encrypted wallet.
The core difference is that even if everyone in the world decides to trust their bitcoins with banks, the base money supply will not be inflated via a central bank in the event of a bank going bankrupt. This will inevitably cause banks to increase their reserves and reduce risk to appease depositers of the safety of their funds, possibly only accepting fixed-deposits. The end result is that the interest gap between savings and borrowing rates will have to shrink due to a competition for deposits.
And given bitcoin's properties, i can assure you that most people would demand payments in bitcoins instead of a banks IOU for large amounts.

It cannot. Fractional reserve banking is an experiment. The premise of using a hyper-inflationary currency  is tested to show if it can promote a healthy economy. Bitcoin is an experiment to see if a secure hyper-fluid deflationary currency can promote new forms of economies. They may exist together for a very long time, but the most successful experiment will eventually win out. I suspect multiple deflationary currencies will supersede the model of a single inflationary currency.

There can be more debt denominated in Bitcoin than the 21M limit, as the debt doesn't have to be repaid in a single instance. As the debtor repays, the lender will reinvest the money and the debtor will be able to reappropriate some to make the next repayment.


text:
How cooperative or competitive is the mining process?
As each miner works out which nonces it has tried, does it notify the network so that energy isn't wasted on re-processing the same thing by each node? Or is it totally competitive with everyone for themselves?

Miners that aren't cooperating will never replicate work because they each want to get a different block as the next official block. If nothing else, the account the mining fee is paid to will be different. (And this ripples up to the header.)
For miners that are cooperating, work units are assigned by the mining pool. The pool will typically embed a different coinbase in the work units it assigns to each miner. When a miner finishes processing a work unit, it requests a new work unit (with a new coinbase) from the mining pool.
So there should never be any replicated work.

This is misleading. While there is no exact replicated work, the effort of every miner doing his block is wasted work when they could cooperate instead.

@Lohoris: They are fully cooperating. They're all trying different ways to solve the same problem, and as soon as one person solves it, they all move on to something else. How could they cooperate more than that?

David, could you elaborate a little on what a "coinbase" is? Thanks

The term "coinbase" is used to mean two different things. The "coinbase transaction" is the transaction in the block that pays the miner his (currently) 50 bitcoins for mining the block. It also specifies where the transaction fees go. Inside the "coinbase transaction" there's an 'in' part that normally specifies where the coins come from. It has a field called the "coinbase field" that can contain any value at all. So miners can use it as an extra nonce (and it sometimes called 'extra nonce').

Every miner is working on a slightly different block because each block pays out the block reward to a different address. There's almost no chance of the network hashing the same thing twice.

When you say "slightly different block", it's still trying to fit the next block in the chain, correct? I forgot that the address is hashed in there too, and probably contains different groups of transactions? So everybody would be hashing something different anyway and there's no way to cooperate: do I understand that correctly?

Yeah, everyone's trying to make their version of the next block the "official version". Blocks may differ in a variety of ways, though most of the entropy comes from the separate payout addresses. Obviously pools are able to create cooperation, though pools do need to prevent their miners from hashing the same data.

Solo miners and mining pools as a whole compete against one another to find the correct hash to solve the block first. As they each want a different address to be a part of the solution (so they can earn coins with their Bitcoin address), there is no overlapping per se. It's just a race to find a solution to your problem under common rules.
Pooled miners, that is the miners that mine together in a pool on the other hand work together to solve the same problem, each being assigned a range of possible solutions to check. Since the pools want to maximize their profits, they shouldn't assign the same work to more than one miner, unless they want to double check that it was solved correctly (and the miner wasn't cheating).

But if miners are competing each other, actually a frauder doesn't need to have more computational power than all the integrate nodes, he only needs to have more computational power than the best of the integrate ones.
And more, the system can not be used for large amount of transactions, if one transaction involves billions of usd, I may prepare a huge farm of computer pool, to revise the blockchain.

I've downvoted this, because it is partially wrong and partially too vague to be useful. – "he only needs to have more computational power than the best of the integrate ones" → That's false: Why doesn't the same miner always win?. –– "to revise the blockchain" → Please read: What can an attacker with 51% of hash power do?.


text:
Why are the mining rewards set to reduce in such dramatic steps?
The mining rewards are scheduled to drop from 50btc to 25btc. The next drop again will be from 25 to 12.5btc. In each of the steps into a new "era" the mining reward is reduced by 50%.
This seems like a very dramatic pay cut at each juncture, Is there a reason why the amount isn't being decreased more gradually by smaller and more frequent amounts?

It`s a geometric series with the base 1/2. After half of the remaining coins are mined, rate is decreased until half of remaining coins since the drop are mined.
The rate is convergent, that is, it approaches a finite number and doesn't go on until infinity (like say, 1, 1/2, 1/3... 1/n would). This makes it so that there will never be more than certain amount of Bitcoins created.
As for why it is so dramatic, probably for the ease of calculating whether the block is correct. If you would have some complicated way of calculating the reward some of the coins might be lost due to rounding error (below 1 Satoshi), and different (non-official) clients might have issues with calculating the result effectively. Moreover, these sudden decreases in amount of coins generated probably will increase the worth of Bitcoins.

Well it is worth pointing out that these steps, no matter how dramatic, should be well-priced in before the event, and that "pricing in" can still be fairly smooth and gradual.

Sorry but my eyes bleed, 1 + 1/2 + 1/3 + … + 1/n is not convergent and approaches +∞.

@Stephane: "doesn't go on until infinity (like say, 1, 1/2, 1/3... 1/n would)" or to put it shortly: "1/2^n does not diverge, like 1/n would". I know 1/n diverges, I did state so, but maybe I worded it in a bit of a complicated way.

Why not a geometric series with a base of 9/10? It still converges, it is still easy to calculate, and it is less dramatic of a change.

@ThePiachu: Ok, sorry, I read it the wrong way.


text:
Over-reporting miner?
I'm running the puddinpop rpcminer-opencl.exe that came with Guiminer. I'm running it with crazy settings -gpugrid=128 -gputhreads=256 -aggression=14 on a FirePro 2270 workstation card, and it's reporting about 20 GH/s which I understand is not even remotely possible. I assume something went wrong and all my hashes are broken somehow, but how do I troubleshoot this?
Update: The same miner works fine on one of my other machines. I did find this output on the console:
Build program rval=0
build STATUS:
build LOG:C:\Users\Sean\AppData\Local\Temp\OCLF1AC.tmp.cl(51): warning: attribute "vec_type_hint" ignored
__kernel __attribute__((vec_type_hint(uint))) WORKGROUP void opencl_process(__global opencl_in *in, __global opencl_out *out, const uint loops, const uint bits)
^
Create kernel rval=0
Done allocating OpenCL resources for (128,256)
Finding best configuration step end (128,256) 6ms  prev best=9223372036854775807ms
Done allocating OpenCL resources for (16,16)

So the warning is odd, but also that last extra (16,16) line doesn't show up on my other machine that works.
Update 2: With "crazy" settings I get no shares. If I run with no options, it reports 10 MH/s and seems to get about one share every 10 minutes. So somehow changing the settings makes it generate no shares at all!

I agree, that 15W card should calculate hashes slower than anything listed at  https://en.bitcoin.it/wiki/Mining_hardware_comparison - 20MH/s sounds about right.  You probably misread the units (1GH = 1000MH), or the software has a bug and miswrote them.

Hm, I don't think it's just a decimal error because on some settings it reports normal values and for others it reports crazy ones. I guess I'll just use a different miner but I thought it was weird.

From memory, when pool mining I can solve about 220 shares per hour with 270MH/s. You could work out an approximate hash rate based on the number of shares solved.


text:
World-wide price for generating 1BTC
Can we find an algorithm to compute the average price (as energy consumption) of 1 BTC being generated if we know: hash rate, difficulty, energy price?

This is very localized in time. Or are you looking for some method to gather that information automatically?

If this was a more general question of whether there are any reports on how much does it cost on average to generate 1BTC, or how would one calculate it, the question would be quite interesting. Care to alter it, John?

You also need to know energy consumed. With hash rate, difficulty, energy consumed, energy price, and block payout (currently 50 bitcoins per block) you can calculate the cost to produce one bitcoin.

The parameters you need to calculate this are:
E - the mining efficiency, measured in MHash/J. Data on this for various hardware is available in Mining hardware comparison (though this take into account only the card's power and not of the system it is in). Or you can calculate it for a given system by dividing the total hashrate (in MHash/s) by the power consumed (in W).
c - the cost of electricity, measured in $/KWh.
B - the bitcoin reward per block.
D - the difficulty.
The cost to generate 1 BTC is:
c*D/(838*B*E)
For example, if E=2, c=0.1, B=50 and D=1,500,000, this is
0.1*1500000/(838*50*2) = $1.79
The 838 "magic number" comes from the various unit conversion factors - 2^32 hashes per difficulty-1 hash, 3,600,000 Joules per Kilowatt-hour, 1,000,000 Hashes per MHash.

I hate specifying the units in which each quantity should be measured. The proper way is to specify only the dimension and let the unit be part of the data encoded in the variable. But that would just add confusion for the purposes of this answer.

can you revisit this? http://bitcoin.stackexchange.com/questions/8196/pricing-bitcoins

As Bitcoin mining is very heterogeneous (that is, a lot of people use a wide variety of hardware), figuring this out would be really hard without the use of polling (as in, asking people questions, not long polling). One would need to get some statistical data on what hardware people have, how much they spend on electricity, and how much hashpower they have, not to mention how much they mine each day. Having all that, we could average it out and calculate something.
If you want to check how much your coin costs you, check out my calculator: http://tpbitcalc.appspot.com/ .

Meni Rosenfeld's formula is what you are you are looking for. It is not possible to calculate the production cost of one bitcoin because of these two variables:

E - the mining efficiency, measured in MHash/J.
c - the cost of electricity, measured in $/KWh.

There is a broad range of hardware which is not limited to GPUs - some people are mining with FPGAs for example - so you can't easily calculate the mining efficiency. The same happens with the cost of electricity because there are different prices for each country, hour of the day, residential/industrial systems, etc. And there are other factors such as the temperature (which reduces cooling costs) and alternative electricity sources (some people could be using solar panels for example).
That being said, you could grab the formula, find the average electricity price per country, estimate an average mining efficiency (maybe based on the hardware wiki list) and reach a number, but it would be very inaccurate.
I made a script with a few examples:
B = 50
D = 1500000
Cost: $0.536992840095   E = 2 c = 0.03
Cost: $2.14797136038    E = 2 c = 0.12
Cost: $3.75894988067    E = 2 c = 0.21
Cost: $0.894988066826   E = 1.2 c = 0.03
Cost: $3.5799522673     E = 1.2 c = 0.12
Cost: $6.26491646778    E = 1.2 c = 0.21
Cost: $3.5799522673     E = 0.3 c = 0.03
Cost: $14.3198090692    E = 0.3 c = 0.12
Cost: $25.0596658711    E = 0.3 c = 0.21

Cost: $0.171837708831   E = 25 c = 0.12

I chose 3 values for mining efficiency in Mhash/J: 2, 1.2 and 0.3 (the greater the better) and 3 values for electricity cost in USD: 0.03, 0.12, 0.21 (the smaller the better).
Some boards, such as the 5850, have higher efficiency but we have to consider the system as a whole so 2 is still a high value. The average price of electricity per country can be found here, but I am going to list a few examples:

High electricity price - Ireland, Italy, Japan
Medium electricity price - US, France, Poland
Low electricity price - Mexico, Taiwan, Kazakhstan

Using GPUs, the value ranges from $0.5 to $25 so it's not a small interval. The last line corresponds to the price of one bitcoin produced by an FPGA with electricity cost at $0.12 per KW/h: $0.17.

As Meni Rosenfeld example indicates you can estimate the cost per coin for an individual system given you know the hashing hardware efficiency and electrical cost.
There is currently no way to estimate this for entire global network as hashing hardware and energy costs estimates.
One could use geo-location to determine the physical location from the IP of generating block and if you had a database of energy costs (even estimate per country) could get energy cost per block.
One extra complexity is that currently about 92% of blocks are created by pools so you will get the pool's IP address not the actual miner.  Pool's can have miners from all over the world making it difficult to estimate cost.
It would be possible to calculate this in real time however you would need the support of miners, miner software developers, and pool operators.  OpenCL library allows a miner software to query device name.  If miner's returned that data to the pool operators could see what hardware is being used in realtime.  If pool operators shared that data you could get an aggregate of global hardware distribution giving you the aproximate global efficiency.  With that you could use data on geolocation of nodes to aproximate average energy cost and thus determine global production price per coin.


text:
BTC Days Destroyed, Lifo or Fifo?
Imagine I've got 100 BTC in my wallet, which I accumulated at different points of time. When spending a fraction of my BTC, e.g. 10 BTC, which one of my 100 BTC do I actually spent? The last one I accumulated (Lifo)? The first one I accumulated (Fifo)?

Neither.  The client chooses the best fit of coins for your spending.  This is known as the knapsack problem.
The coins chosen will be the ones that yield the lowest amount of change, with exceptions for very recent (unconfirmed or newly confirmed) coins.  Even when there are multiple solutions that yield the same amount of change, it will not necessarily choose an older coin versus a newer coin.
Here's an answer to another question that gives more details on this:

https://bitcoin.stackexchange.com/a/1078/153


text:
Where are the user's bitcoins actually stored?
On the person's computer?
On bitcoin.org? :)
Where does that information reside that tells others and me how much bitcoins I have?
I assume it can't be on my PC because I could easily hack the file that contains that data and get myself more bitcoins, right?

All the crypto assets like Bitcoin, Ether etc are stored on the their respective blockchains. The information like your balance is stored on a particular block with other details like creation creation time etc, which can't be altered.
The sites like https://live.blockcypher.com/btc/ , shows your balance using your public address. Anyone who knows your public keys can know your balance, transaction history as well.
However with the access to the private keys, you claim that a particular public address belongs to you, which means you have the "rights" to control your funds(Transfer etc).

It seems like what's called for here is a basic explanation of two of Bitcoin's big concepts: the wallet and the blockchain:

A "wallet" is a collection of ECDSA keypairs. For those not familiar with cryptography, a keypair consists of a "public key" and a "private key" which can be used to encrypt or sign bits of data. The public key, as the name suggests, is known to everyone and can be used to encrypt messages in such a way that the holder of the private key alone may decrypt them. The private key may also be used to sign messages in such a way that anyone holding the public key may verify that the message truly came from you. Every Bitcoin address consists of such a keypair - the "address" you send people is the public half and the private half resides in your wallet.dat file.
The "blockchain" is a constantly growing database of transaction information which is sent out to all nodes in the Bitcoin network. When you perform a transaction, that transaction is distributed to the network and assuming the transaction is valid, will be included in the next "block." This is where the coins themselves are stored. When you initiate a transaction, all previous transactions to or from that address are scanned and a balance is calculated. If your transaction exceeds this available balance, it will be rejected by the network and will not be included in a block.

It's also important to note that the blockchain technically doesn't store "coins" it stores transaction information. The coins themselves are not discrete things which need storage - when coins are mined the miner's balance is credited via a "generate" transaction which adds to his or her available balance. When coins are sent from A to B, that transaction subtracts from A's balance and adds to B's balance. This is similar to the way that your employer may, via EFT, send "money" to your bank and you can use your debit card to spend that "money" in a store, all without anyone ever seeing a discrete physical dollar bill. Most money in the world today exists merely as transaction histories and balances - Bitcoin is no exception.

Excellent explaination, thanks. So you can really just store an offline backup of your wallet on a flash drive and you don't really need to run the wallet client actively until you want to make a transaction?

Are you sayng that every node on the bitcoin network contains the entire history of all transactions ever perfomed by bitcoin owners? Second, what is a "node"? Any computer with a bitcoin wallet?

It depends on what software you're using, actually. Way back when I wrote this answer there was really just the one wallet software and yes, it stored every single transaction ever. Today there are several options and not all of them store all data. Electrum, for example, runs thin clients which connect to servers that store the whole blockchain and many phone wallets only store blocks containing transactions that pertain to them. In general, however, it is considered preferable for each node (computer running software) to store everything.

David, thanks, but there are several vague things i cant understand. I will list:  1) in case all transactions were stored in individual node/pc, so that person (pc holder) can open(view) that data and alter?  (yes or no) 2) if he can alter the data, then what happens? the system checks if that data is same as the data what other thousands of nodes store? how it is validated I cant understand, if individuals could change the data... 3) where is the core host(server) or appliance, which gives you permission to reject or add transaction ("generate") to your account? who decides that?

when transaction happens, where it is stored/updated at first? i.e. on someones node? and in the far side on the earth somewhere, on a node, that transaction update might happen after X seconds/minutes, and if during that time, another transaction happens by the same holder??

@T.Todua, did you find answer for your 4 questions listed above? If yes can you please post here.

@VishalSingh I doubt that even bitcoin creator hardly knows how all this work :)

@David - Can you please elaborate on: "When you initiate a transaction, all previous transactions to or from that address are scanned and a balance is calculated."?  How are they scanned?  Is there a running balance that can be determined by looking at the most recent block containing that address or do all blocks need to be scanned?

Supposes the owner of the bitcoin account dies then where does that money goes? I mean in legacy cases the money is safe with the bank and can be passed to nominee

The information is split. Some information is stored on your PC in the wallet file. Some information is stored in the public blockchain.
Stored in your wallet file is the list of accounts that you control and the secret key needed to spend coins sent to those accounts. Stored in the public blockchain (held on every computer running the Bitcoin client) is the record of every transaction ever made, including any transactions that sent you coins.
When you wish to spend your coins, you check the blockchain to find unspent coins sent to you (or mined by you). You compose a transaction that specifies which unspent coins in the block chain you wish to spend and what account(s) you wish to send those coins to. You can return any 'change' to an account you control. You use the keys in your wallet to sign the transaction.
You then broadcast that transaction to miners. They confirm that your transaction is valid, making sure it spends only coins that exist, are unspent, and that it has the proper signatures. They make sure that the number of coins coming out of the transaction is less than or equal to the number of coins claimed by the transaction. They then commit that transaction into a new block linked into the hash chain, and the transfer is complete.

Your coins are stored in addresses in the block chain.  Thus your coins and my coins and everyone's coins are stored in every computer which makes up the Bitcoin network.  The block chain contains every address in use, and every one that has ever been used along with how many coins are currently at that address.
This is why hacking your own client or wallet.dat isn't useful.  Your coins aren't there they are everywhere.
For example you can lookup any of your (or anyone elses) addresses here and see the current value.
http://blockexplorer.com/
So what keeps other people from spending YOUR coins?
Spending Bitcoins is to create a transaction moving it from one address to another.
To create a transaction requires that you cryptographically sign the transaction with the private key of the address containing the coins (the public key).  Since there is a mathematical relationship between public & private keys the rest of bitcoin network can verify that the transaction is properly signed.  The "coins" (technically public key addresses and their current value) can be seen by anyone but those coins can only be moved by the persons in possession of the private key.
Your wallet.dat file contains all your public private key pairs.  Anyone in possession of you wall.dat file (and encryption passphrase) can sign transactions as the owner of those public addresses and thus has control over the coins.  This highlights why you must always safeguard your wallet.dat and encryption passphrase.
This method of storing value is unique to Bitcoin (and subsequent copycat coins).
To sum it up in a pair of sentences:
Your coins are stored in addresses (public keys), copies are made public and included in every node of the bitcoin network.  However the security of those coins are ensured because only the person in possession of the matching private key can create a valid transaction to move them.

Great explanation. Tx!

What happens when you lose your wallet.dat file?

@DeathAndTaxes "Coins" are not entities stored in the blockchain; they're just an abstraction on top of transaction info like balances.  It's the tx info & balances where are stored in the blockchain and associated with addresses.

Your wallet.dat contains your keypairs that lets you use your coins. If you lose those, you will lose access to your money.
The actual coins, however, are encoded in the Blockchain. Each time you make a payment with your coins, you have to refer to the last time you made such a payment, so everyone can check if you balance is right. When making a payment, you specify both how many coins you are spending and how much coins you have left. If you manipulate your transaction and state a wrong value, people that will check your transaction will know and will reject it.
There is no place the coins are stored as you'd store physical currency. It is more like a bank balance - just a number. But since all transactions are transparent, everyone would know if you are trying to cheat.

Where is that block-chain database stored?

A copy of it is stored on every computer running the Bitcoin software.

Blockchain is distributively stored by computers running the Bitocoin software. Most clients do not store the complete blockchain (as it is on the order of 1GB of size), but they store the transactions they are interested in (as in, the ones that have coins that belong to them and the newest blocks). Some clients, however, store the whole blockchain. So, everyone has some blocks, some people have all blocks, and there are multiple copies of the same block stored across the internet.

ThePiachu, you're talking about a lightweight client which, to the best of my knowledge, has not yet been implemented. Currently all clients store the whole blockchain.

Oh, I guess I must've gotten my info wrong somewhere. Sorry about that.

Meni, it has been implemented but not in the main client. What ThePiachu is talking about is a "selfish client" as implemented primarily on mobile devices. BitcoinJ, the Java port of Bitcoin currently in use on mobile devices does in fact store only block headers and blocks containing transactions of interest. This has been the subject of at least one question though I'd love to see more - it's an interesting topic.

Information on how many bitcoins belong to each address is stored on a data structure called "the block chain". A copy of this data exists on every node on the Bitcoin network (that is, every computer which has the Bitcoin client software installed has information about all bitcoins in existence). The block chain follows certain rules that make sure that even if one manages to hack most of the stored copies of it, he'll be unable to credit himself with more coins.
The information required to grant you access to the bitcoins owned by your addresses, is stored in the wallet.dat file on your computer. Stealing an unencrypted version of it allows stealing your coins, so it should be guarded (a wallet encryption feature has been recently added to the client, and even better security features are in the works).

Bitcoin tokens don't actually "belong" to addresses. The idea of an address is purely a convenient abstraction. Addresses don't truly have a balance (nor does the Bitcoin blockchain even understand that addresses exist), but referring to an address balance is simply a quick way to refer to the total sum of tokens stored in unspent outputs which the owner of a particular address has the ability to spend.
In Bitcoin (and similar UTXO-based blockchains), tokens are "stored" in unspent outputs. The sender of a transaction specifies the requirements that must be fulfilled in order for the transaction's outputs to be spent. Tokens that are "sent" to an address are actually just stored in an output which requires the spender to prove ownership of their address by providing the public key their address is derived from along with a valid signature of the new transaction they wish to create to spend the original output.
The minor distinction between addresses "storing" tokens and addresses being able to spend tokens stored in outputs is important, and allows the creation of more advanced types of transactions (such as P2SH which enables multisig, timelocked and hash-encumbered transactions which allow technologies like atomic swaps and payment channels to function, etc.)

A Bitcoin (BTC) is not a physical object. Conceptually speaking we can say that BTC (in the digital world) is somehow like water in the physical world. Just like there is a finite amount of water on earth there is a finite amount of BTC on the Blockchain. Just like a water quantity can be split into its smallest quantum (an H2O molecule), a quantity of BTC can be split into its smallest quantum, a Satoshi (0.00000001 BTC). A quantity of BTC is represented by a number, such as 3,728BTC. So, if a number can represent some BTC then all that is required to store some BTC is the ability to record a number. In the digital world you store information in files. Hence, Bitcoins are literally stored into files. What these files contain are (amongst other information) a whole bunch of addresses to which are sequentially attached a number, the actual amount of BTC to a specific address.
A Block is a bunch of addresses with its corresponding number ( the amount of BTC) that has been verified by miners. The Block is "locked", approved and spread over all the Blockchain nodes around the world. That newly created (approved) Block is then attached at the end of the Blockchain in every nodes. Once this action is done it is irreversible (according to the Bitcoin Algorithm, which is the consensus amongst all nodes).
So, where are the user's Bitcoin actually stored? They are stored in the approved Blocks part of the single one and only version Blockchain, which a copy exist in every computer running a node around the world.
When you want to "spend" some BTC for a purchase of some kind, you need your unique private number to open the possibility to change the amount of BTC attached to a particular address such that this amount is allowed to be transferred into another address (the recipient address). All these number are what's recorded in the upcoming new Block, the one that will include your newly created transaction.
This whole strategy is described with words that find parallel in the physical world, such as wallet, money, account, and more. All these concepts are digitally represented in the numbers stored in those files called Blocks.

While the general gist is right, this answer is oversimplifying. "Quantities of BTC" are stored in [tag:UTXO], they are a bit more than just an address and a number, most notably there is a cryptographic lock to spending. Also, blocks are not irreversible. The chaintip is always probabilistic. A block could be overtaken by a competing chaintip and end up not being part of the best chain. Check out the tag [tag:chain-reorganization] to read more.

Good point Murch. Thanks for the comment. My intention was to offer a view that would have helped me back when I was first introduced to cryptocurrencies. I wish someone could have explained it as such. It would have saved me hours of research.

In addition to the actual question and the answers posted, it's important to note that the concept of ownership is slightly different in Bitcoin. You don't actually "own" the coins you have, you merely have the right to "control" them however you please, as only you "own" the key to do so.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Is there a mining software that I can run on my webspace (php, ruby, python)?
Is there a miner written to be run on webspace, e.g. in ruby, php or python?
I know, it will be to slow and its not worth it, but I want to see it though :)

If you are thinking of doing this on a hosted system, know that all hosting companies are aware of bitcoin mining and starting long ago specifically will look for high cpu usage and kill of those instances.

You should look into webminers - What is the status on webminers?
But generally, it's not really worth it. Unless you get a lot of high-end-graphic-card-owning users to stay on your website for a long while, you won't earn much. You can try running some of the webminers on your own machine and see how much you can earn for example by using my Mining Calculator. Having someone with a 100MHash/s graphic card (fairly decent for a non-dedicated miner) on for 24 hours would give you about a cent of revenue.
All in all, you're probably better off with adding some ads to your website.

@Erik was asking about server-side miners, not client-side miners.

Here's a python-only miner.  Not sure if it still functions:

https://github.com/jgarzik/pyminer


text:
Can bitcoins be traced by pool workers?
A lot of people doing bitcoin mining participate in pooled mining. When participating in pooled mining the workers perform some mathematical calculation (that I have actually not understood) and are rewarded payouts for their contribute to new block generation.
Is it possible that the workers, minining in a pool, can find out which bitcoin they are working on? If yes, I think they would be able to see to whome the bitcoin they worked on was transferred later to?

When a miner in a pool finds a valid block, the pool receives a reward (currently ~50 BTC) in a special generation transaction in the block. The address receiving the generation reward in a given block is known, and pools publish statistics on which blocks they found (and even if not, the miner who found it can in theory know which blocks he himself found if his mining software keeps a record of it), so the generation rewards can be tracked (to the same extent that any other Bitcoin transaction can be tracked).
The mathematical operation done when mining is calculating SHA-256 hashes of variants of a block header. You can learn more about mining for example at What exactly is mining?

I see. What if a miner does NOT find a block, but is only generating hashes? Will he still be able to know on which block he was working with his "miner colleagues" ?

@Erik: Each miner in the pool works on a different block, so that's kind of undefined. In particular, usually each miner will have a different address for the generation transaction, and he doesn't know what it is unless the pool publishes it (which it will only do if the miner finds a block). Basically what the miner knows in advance is the serial number of the block he worked on (and the identity of the previous block) and the Merkle branch, a non-invertible condensed summary of the transactions list.

It's also possible to have a pool with smart miners who decide themselves what block to work on, but that's not commonly done.

If every miner works on their own block, how can the pool create constant payouts? Isn't a payout like a credit from the pool then, as the block was not yet generated?

The miner in a pool can know the previous block that is being built upon.  So if the previous block is at height 1,083 then the miner can know that the current block being worked on is block 1,084.  In the case where there's a fork and there are two 1.083's, the miner in the pool can only build upon the one that the pool happens to have chosen.

@Erik: Is that question about smart-miner pools? In such pools the miner still credits the pool in the generation transaction, and to prove it he send the pool the Merkle branch of this transaction for every share. The pool then distributes the rewards from the block to the miners. There's also the p2p pool p2pool, where miners credit both themselves and other miners in the generation transaction.

No, my question was not about smart-miner pools

Ok. In normal pools it's also true that the block each miner is working on credits the pool. For every miner it will likely be a different address but still an address which belongs to the pool. The pool uses these rewards to pay miners, how exactly depends on the reward system used. In PPS the pool rewards miners for the work done hoping that a block will be found, before it is actually found. In most other systems payment is done when a block is found, and the block reward is distributed among miners who have recently done work.

Everyone, not just miners, can see every transaction that's in any block.  Being a miner doesn't give you any special insight that other users don't have.  The whole blockchain is public with a full copy being held by everyone who runs a Bitcoin node.
This doesn't mean that you can easily link transactions to people however.  Everyone can see that address A transferred X bitcoins to address B.  But it's not obvious how to determine who owns addresses A or B.


text:
Mining pool software for home use
I have tried to set up a mining pool with my home computers. I am running bitcoind on one machine, and the others, also running bitcoind, were started with --url and --userpass to my central bitcoind server.
Now, are these machines already forming a mining pool? Or am I missing something?
What other software should considered for a home mining pool?

You can create a private mining pool with just bitcoind. All mining software will work with it: just point the mining software at bitcoind's RPC port and use the appropriate RPC username/password.
bitcoind doesn't know how to do payouts or multi-user authentication, though, so public mining pools require additional software.

bitcoind cannot handle the load required to solo mine anymore.

From what I understand, you only need one bitcoind instance on one machine, while other ones would only run miners that would connect to the bitcoind machine. Running more bitcoind than that is not necessary.
As for the software, you should look into P2Pool - it allows you to earn smaller amount of Bitcoins more often, meaning you'll get smaller variance. It won't decrease the amount of Bitcoins you earn on average though, meaning it doesn't cost you anything to use.

Except that P2Pool has for some reason been paying out only around 90% of what it should be expected to pay out over the last 6 months.  Some think this is due to exceptionally bad l**k; others think there must be something wrong in the code.  The true cause appears to be currently unknown.  (See the blue line on http://p2pool.info/luck/)

It looks like p2pool's luck is -2 standard deviations. Pretty bad luck, but definitely within the realm of possibility even if everything is working correctly. (The chance that something like this or worse will happen completely randomly is about 2%).

Eligius offers SMPPS (low variance, predictable income) decentralized and centralized mining, but more relevant to your question, our mining pool software, Eloipool, is completely free and open source. It does require a Linux server, however, unless you have the Python skills to port it to Windows (the main issue is epoll).


text:
Is there any way to tell if there is a miner (in a pool) on the network, from a network perspective?
I'm thinking traffic analysis, packet inspection, IP.
How would that be differenciable from other traffic patterns?
How active do admins look for such patterns?(I'm thinking more P2P stuff)

I'm thinking more P2P stuff AFAIK, pooled miners don't produce any P2P traffic.

Pool miners connect to the pool server, not to the P2P network. You may be able to find the pool server by tracing the origin of the blocks, but you can't find the individual pooled miners on the network, as they're not actually on the network.

How much data gets passed trough the network from the mining PC? Can they look at the protocol as it is very specific?

The stratum/getwork 'protocols' can easily be identified as such, yeah. The amount of data passed between the pool server and miner is minimal: iirc the miner only needs 80 bytes of the block it's creating.


text:
How can a programmer contribute to the Bitcoin project?
I'm a programmer and would like to support the development of Bitcoin, but I don't have an original idea for a new project. Where can I find information about tasks and issues that I could put some effort into?

Gavin Andresen, the Bitcoin client technical lead, has expressed a desire that effort be focused on closing bug reports in the client. You can find the current list of open issues on GitHub. You can also find some documentation about how to create your own fork of the project source and how to suggest that changes from your fork be pulled (imported) into the main release in Gavin's post here.


text:
Is there any point to casual mining?
Is there any point to casual mining anymore? I recently discovered bitcoin and was wondering if there was any point to running mining software on my laptop while I work on essays or other non-computationally intensive task. I tried looking around, but answers seem conflicted on if casual mining is possible.
I mean will I get any bitcoins from it, not is it profitable per unit cost of electricity. Will I get anything in a reasonable timeframe or is that now a thing of the past? By anything I mean, the silly 0.1BTC I see stuff put up for on http://forbitcoin.com and such, not hundreds of dollars to supplement my income.

In general stack exchange practice I tried to make my question general: However I'm on a Core i5 M 540 @ 2.53 GHz (1.8 MHashes/s) with a NVIDIA NVS 3100M graphics card (3.6 MHashes/s) according to the wiki: So it would take me 2 months running all the time to get the 0.1 Bitcoins for one of the stupid uses on the trading sights, longer with pool fees? Longer if I only am running it a few hours a day?

I edited my answer to give you a scale of how inefficient CPU mining.

Interesting, though I don't pay for power currently. Not good for the environment to use a CPU though. Think I'm not going to do it then, the heat would probably wear out my laptop faster anyway.

Regarding your comment: yes to all questions. I wouldn't mine with that hardware. If you want a few bitcoins you should buy them.

It is always worthwhile to learn about new technologies, thus it is 100% worthwhile to casually mine bitcoin.  The only counter argument centers around a premise that the reason you mine is for profit, but naturally, just as with any pursuit, whether coding for freeBSD, being a website Ruby developer, or a computer hardware repair-person, there are those projects you do for profit, and those you do for learning and fun.  As long as one approaches the endeavor realistically, i.e., not expecting to make billions with an Ant Miner at home, then of course it is worthwhile @Canageek

Mining in your work/home computer has some side effects, namely:

Heat - could damage your hardware if you don't handle it properly
Noise
Slowdowns - if you use your computer while you mine you should reduce the miner's load
Power consumption - if you don't pay for electricity this may not be an issue

So I would say that there is a point in casual mining as long as your earnings compensate for these disadvantages. It is really up to you to decide if you want to stress your hardware to earn a few coins.
Speaking of a more concrete scenario, casual miners usually fall into two categories:

You have a good GPU for mining in your PC - a recent medium/high end ATI card.
You don't have a good GPU so you want to mine with your CPU/low end GPU.

Check this question to find out where do you stand. If you have a good GPU, you might get around 8 bitcoins per month at current difficulty. If you don't, you will probably not earn more than 1 or 2 coins per month.
My personal opinion is that if you fit into the first category, you could give it a shot. If not, I wouldn't do it just for a few dollars (and I do not recommend mining with your CPU at all).
As a final note, bear in mind that these numbers are always changing: new hardware is coming out all the time and new miners are joining while others are leaving. This influences the amount of bitcoins you will earn with your hardware so be sure to check an updated hardware list for your calculations.

is this answer obsolete now or do you think the advice is still accurate?

@glS 6 years later this is mostly obsolete. Is there a better answer/resource that I can point users to?

TLDR: Rough estimate of electricity cost needed to produce one bitcoin on a laptop with 5 Mhash/s equals to 61 dollar, and would take 339 days with current difficulty.
A standard laptop CPU provides around 2-8 Mhash/sec and consumes 25 to 75 watts, which on average gives us 1 Mhash/sec per 10 watts of power.
An ATI 5870 video card, which has one the best efficiency/cost ratios, mines at about 400 Mhash/sec and consumes about 216 watts. Which gives us about 2 Mhash/sec per 1 watt of power. In other words mining with ATI video card about 20 times more cost effective then mining with CPU.
According to pi.uk.com/bitcoin, mining with ATI video cards at 1000 Mhash/sec will cost 650 watts or 9.75 cents (15 cent per kilowatt hour), and the operation profit margin would be 19.07%. Therefore I doubt it would be cost effective to mine on laptop considering that power consumption changes dramatically from computing intensive task.
You can get better estimate yourself by using Bitcoin mining profitability calculator and Electricity Prices by State.

If your costs are minimal (for example, you don't pay for electricity), yes, there is some point in casual mining. You will have to mine in a pool (for example http://www.btcguild.com/) and don't have high expectations, but yes, you can get some coins over some time. If you care about how much will it cost you to generate those coins, you might want to consider buying the coins at https://mtgox.com/ .
If you want to know how much you can get in a reasonable timeframe, check out a bitcoin calculator, for example http://tpbitcalc.appspot.com/ .

Wrong. Even if he doesn't pay for the electricity, as long as he pays the laptop, it won't be worth the wearing effect on the laptop itself. Furthermore, even the few minutes spent writing this question and reading its answers will alone be worth more than what he could have earned anyway.


text:
Is there a version of EasyMiner for Mac?
I'm thinking about possibly getting a BitForce Jalapeno (http://products.butterflylabs.com/4-5gh-bitcoin-miner.html) It says that it needs "EasyMiner" which is only for Windows. (The download page links to a .exe file). Does anyone know if they're planning to make a version for mac? Are they any alternatives? (In software, not hardware)

I don't know whether EasyMiner will be ported to Mac. But there will be several other miners supporting the BitForce Jalapeno and other BFL ASIC products.
If you want a user-friendly alternative you may want to try out BitMinter client. It has been thoroughly tested with BFL FPGAs mining on Macs. Support for BFL ASICs will be added as soon as possible. This miner is available from http://bitminter.com. I am the author of this miner.

Where can I download that?

URL added above.

Where on that site can I download it?

Just press "engine start" on the website. It's distributed through Java Webstart. Alternatively you can start it from the command line aswell: javaws http://bitminter.com/client/bitminter.jnlp

EasyMiner should run fine in a virtual machine, but you can alternatively grab MacMiner which unlike bitminter doesn't require java
MacMiner website


text:
Can a Finney Attack make SatoshiDice betting profitable?
Can a Finney Attack make SatoshiDice betting profitable? If you perform a Finney Attack whenever your bet fails (by replacing it with a transaction to yourself), then would it make betting profitable, even though the Finney attack won't always work? How much mining power would you need to break even on profitability?

The short answer is: yes, but it would not be profitable in the long-term.
A Finney Attack is not easy to pull off, because guessing when the rogue miner's block will be generated is imprecise and inaccurate. Guessing gets easier with the more hashing power the rogue miner puts on the network, but you probably won't see real profit unless you get a pool to participate in your attack.

Satoshidice bets pay out within 30 seconds or so, so you can just bet after you find a block.

Good point, I hadn't thought of that. That would mean one can make a profit with this attack at any amount of hashing power, as long as they're making a profit mining regularly anyway.

authors: Владимир Вишена


text:
What exactly is Mining?
I have heard that mining is for people with ready hardware and blah blah blah... But what exactly is it? Does it operate like real mining? I mean, people talk about it like you are physically mining.

David Schwartz's answer is entirely accurate, but all that "bitspeak" might be a little intimidating to the average user.  Let me try and put it into more plain language:
The way Bitcoin works is that instead of having one central authority who secures and controls the money supply (like most governments do for their national currencies), this work is spread out all across the network.  Most of the heavy lifting for Bitcoin is done by "miners".
Miners collect the transactions on the network (like "Alice pays Karim 10 bitcoins" and "Liam pays Sofia 8.3 bitcoins") into large bundles called blocks.  These blocks are strung together into one continuous, authoritative record called the block chain, which doesn't permit any conflicting transactions.  This is necessary because without it people would be able to sign the same bitcoins over to two different recipients, like writing cheques for more money than you have in your account.  The block chain lets you know for sure exactly which transactions count and can be trusted (so no bad cheques!).
The way Bitcoin makes sure there is only one block chain is by making blocks really hard to produce.  So instead of just being able to make blocks at will, miners have to compute a cryptographic hash of the block that meets certain criteria.  Bitcoiners refer to this process as "hashing".  The only way to find a cryptographic hash that's "good enough to count" is to try computing a whole bunch of them until you get lucky and find one that works.  This is the "lottery" that David Schwartz refers to, because miners who successfully create a block are rewarded some bitcoins according to a preset schedule.  The difficulty of the criteria for the hash is continually adjusted based on how frequently blocks are appearing, so more competition equals more work needed to find a block.  Modern dedicated mining hardware (e.g. ASIC miners) can try trillions of hashes per second, so to be competitive in this race to find hashes miners need specialised hardware, otherwise they will tend to spend more on electricity than they make in the "lottery".
In addition to the hash criteria, a block needs to contain only valid, non-conflicting transactions.  So the other main task for miners is to carefully validate all the transactions that go into their blocks, otherwise they won't get any reward for their work!
Because of all this work, when a Bitcoin client signs on to the network it can trust the block chain that was most difficult to produce (since this is evidently the one that was being worked on by the most miners).  If there was a "fake" blockchain competing with the real ones (say, where someone pretends that they didn't actually give Sofia those 8.4 bitcoins and they still have them), the fraudster would have to do as much work as the whole rest of the network to make their block chain look as trustworthy.  So essentially, the intense work that goes into finding blocks through hashing secures the network against fraud.  There is also, of course, some nifty code that figures out how to choose between conflicting transactions; and what to do if two people find valid blocks at the same time.
One last thing:  why is it called mining?  In the original analogy, people who performed this essential work were compared to gold miners digging the gold out of the ground so that everyone could use it.  But in reality, Bitcoin "miners" are just running computer programs on very specialised hardware that automates the process of securing the network.  To sum up, this software

Collects transactions from the network
Validates them, and doesn't allow conflicting ones
Puts them into large bundles called blocks
Computes cryptographic hashes over and over until if finds one "good enough to count"
Then submits the block to the network, adding it to the block chain and earning a reward in return.

That's mining in a nutshell!

mining is doing the work of finding nonce so that sha256(sha256(data+nonce)) < difficulty
where

nonce is an integer number the miner chooses freely (this choosing of the nonce and checking if the condition (< difficulty) is met comprises the work
data is a hash over the contents of the block (transactions) and the previous block's hash
sha256() is the SHA-256 cryptographic hashing function (wikpedia SHA-2 article)
difficulty is a value that is adjusted consensually by the nodes of the bitcoin network to adjust for change in network computation power in order to have one block every 10 minutes found by the network

The resulting nonce is the proof of work: since it's impossible to find nonce without essentially trying different nonces and calculating the two hash functions, having found a nonce that satisfies the condition is proof this work of searching and calculating has in fact been done.
This is the central idea behind Bitcoin to solve the double spending problem: due to the inclusion of the previous block's hash in data (this links the blocks to form a chain) and the fact that the honest nodes of the network always do their work on the longest chain of blocks, a double spending attack involves calculating (and later publishing) a forked block chain in secret that is longer than the "honest chain" (containing the transaction that should be undone).
Due to the work required to do this, this race can only be won if the attacker has greater computation power than the rest of the network together. Since using such computation power to honestly mine is likely more profitable than pulling a double-spend, the incentive for doing a double-spend attack is low.

Mining is the process of securing transactions and committing them into the bitcoin public chain. It requires winning a kind of computational lottery where each hash you perform is like buying one ticket. The Bitcoin protocol currently permits the miner who generates a block to claim 50 bitcoins as well as any transaction fees for the transactions that miner chooses to include. The number of bitcoins that can be claimed decreases by half every 210,000 blocks in what is known as "halving".
The Bitcoin system uses the mining process to generate coins, secure transactions, and publish transactions.

The block reward is now 25 bitcoins.

The block reward is now 12.5 bitcoins.

The block reward is now 6.25 bitcoins.

The block reward is now 3.125 bitcoins.

Mining is just doing computational work to secure the transaction block chain. A side effect of mining is creation of new coins and earning additional money by signing on transactions.

In more simple terms:
Actual mining means, you sweat digging something and then find some useful metals.
In bitcoin mining, your computer sweats calculating blocks and in return the bitcoin protocol gives you some bitcoins.
And in actual mining, you find precious metals which doesn't belong to anyone. Similarly, in bitcoin mining, the bitcoin protocol generates new bitcoins (Only upto 21 millions though) (which are not belonged to anybody) and gives you.
So the word "mining" makes perfect sense.

The answers in this section all present different, useful perspectives.  Another useful, but non-technical perspective is:
Mining is a battle between those who want to see Bitcoin succeed for the greater good, and those who don't care if it is destroyed as long as they achieve some victory, even if only to be part of the destruction (they might not get any BTCs from their destructive efforts).
In other words, Bitcoin is a fascinating attempt to establish an alternate money system.  Since the P2P, decentralised architecture is integral to its success it is, by design, open to any participant.  The mining process assumes that some participants are evil.  It pitches 'good' against 'evil' in the hope that 'good' will continue to succeed and maintain the integrity of the network.

Mining is just running a application on your computer to confirm the transactions of the crypto currency for which you get paid as fees.
I will say mining is the soul of crypto currency, according to today's scenario everyone creating new coin everyday but some of them goes to the moon and some of them just vanish in a couple of weeks, why? because a coin is alive until there are people to mine it. Take a example of a coin which has only 100 miners and you bought 1000 such coins after a few days miners stopped mining that coin, now you cannot sell that coin to anyone even if you have a potential buyer, why? because your transaction will not confirm until there are people mining that coin. The price of coins go up because of mining, why? because as many miners start mining the currency the difficulty increases, with the increase of difficulty mining coins will take more time, more miners more demand less coins. Increment in rates.

Bitcoin mining is the process of adding transaction records to Bitcoin's public ledger of past transactions or blockchain. This ledger of past transactions is called the block chain as it is a chain of blocks.
Bitcoin mining is intentionally designed to be resource-intensive and difficult so that the number of blocks found each day by miners remains steady. Individual blocks must contain a proof of work to be considered valid. This proof of work is verified by other Bitcoin nodes each time they receive a block. Bitcoin uses the hashcash proof-of-work function.
The primary purpose of mining is to allow Bitcoin nodes to reach a secure, tamper-resistant consensus. Mining is also the mechanism used to introduce Bitcoins into the system: Miners are paid any transaction fees as well as a "subsidy" of newly created coins.
Miners do expensive computation to solve puzzle and they broadcast it over the network. It contains a number called nonce which can be used to easily verify that actual work was done. This is called proof of work. The solution takes lot of trials and is computationally difficult but it can be easily verified by other nodes on network. Any evesdropper, if tries to alter any block or transactions, will need to do alter all following blocks in blockchain that will get exponentially difficult. Thus it makes alterations in block impossible and a secure and tamper resistant ledger is created on blockchain.
Mining is also the mechanism used to introduce Bitcoins into the system. Miners are paid any transaction fees as well as a "subsidy" of newly created coins. This both serves the purpose of disseminating new coins in a decentralized manner as well as motivating people to provide security for the system.

Miners maintain the immutability property of the blockchain. Proof-of-work makes it so that the cost to "undo" any mined transaction will grow with time. Miners get paid for this service: with block reward subsidy & user's transaction fees.
You can think of transactions as destroying bills and creating new bills of total same value. Nodes maintain a current database of active bills, and will reject a transaction trying to use an old bill. That's the double-spend check. It requires look-up / delete / insert operations with the UTXO database.
Popular belief is that miners get paid for the job of verifying and assembling transactions into blocks, but that is wrong. That is a job any node is capable of doing and it doesn't cost them much. Your RPi node can assemble transactions into a "block template", but it just can't fill in the 1 blank that will satisfy the last consensus rule it needs to satisfy to be a valid block - the PoW difficulty check. That's why you can't simply kick out one block and replace it with another, because finding that nonce takes time. PoW's purpose is to increase the cost of undo.
Miners get paid for the job of filling in the nonce that will produce a satisfying block header hash, they get paid for the hashes because the only way to find a satisfying nonce is to make lots of guesses and hash the guesses. The network essentially bids for the hashes with block reward subsidy and users bid for the hashes with their transaction fees, and the more total reward the more secure the whole network becomes* since the cost of "undoing" a block will be bigger because difficulty will grow higher.
(*assuming constant price)
Each transaction is a business transaction with a miner, they're the recipient of the implicit output (the fee), which is a payment from user for the service of maintaining the immutability property of the ledger! Of course miners would include their own business transactions into blocks they create!
During the early days of Bitcoin, nodes did all these jobs:

Verified incoming transactions and blocks
Made their own transactions and broadcast them to the network
Assembled transactions into a block template (full block, with just the nonce missing)
Filled in the nonce to make the block header pass the PoW check

Since then, the jobs have been separated.
Now it's mostly pools who do 1-3, and "miners" are just blindly doing the 4.: getting 80 bytes of block header from the pool and grinding the nonce. How do the miners verify what they're mining? Well, they have to get paid eventually, right?
Miners get paid their reward from the pool, so to independently verify they're getting paid correctly in proportion to their work, they also need to have some regular node, which can be off-site and doesn't need to be involved in mining! In that case they run a node to verify they themselves got paid for some past work in the right currency! This gives pools the power to direct hash-power of many as they like, but the pool can't really hide what they're doing, so everyone's on good behavior.
Note that "miners" are not exclusive to a single blockchain network. All Bitcoin miners are sha256d miners, but not all sha256d miners are Bitcoin miners! The era of one blockchain is long gone. Networks bid for the hashes, miners sell the hashes.
What happens if a subset of nodes changes the rules? All nodes under old rules will reject changed rules, and all nodes with changed rules will reject old rules. This happened in 2017 with the BCH fork. If both will be mined, then both will continue to exist independently.
Which will get more hashes? It will depend on market price.
Miners pay for their energy usage and hardware in some external currency, they have to exchange it to pay the bills. If they can exchange the blockchain's native currency (BTC, BCH) for the cost currency (USD, CNY), and still have something left -- then they can make a profit. Their profit depends on there being liquidity for the native currency and the native currency having value! So they don't just arbitrarily decide which network to mine. They have strong incentive to get a ROI on their hardware, and optimal mining is to mine ALL networks which have a liquid market for the rewards, and in proportion to market value of their block rewards.

Bitcoin mining is the process by which new bitcoins are created and transactions are verified and added to the public ledger, known as the blockchain. It involves solving complex mathematical puzzles using computer hardware, such as specialized mining devices called Application-Specific Integrated Circuit (ASIC) miners or graphics processing units (GPUs).
Here's a brief overview of how Bitcoin mining works:
Miners collect and validate recent Bitcoin transactions into a data structure called a block.
Miners then compete to find a solution to a complex mathematical problem, called the proof-of-work algorithm, which is based on the block's content and the previous block's unique hash.
The first miner to find the solution, or the valid hash, broadcasts it to the network.
Other miners verify the solution, and if it's correct, they add the block to their version of the blockchain.
The miner who found the valid hash is rewarded with a certain number of newly created bitcoins (called the block reward) and transaction fees from the transactions included in the block.
The process repeats roughly every 10 minutes for each new block.
Bitcoin mining serves two purposes: it creates new bitcoins in a controlled and predictable manner, and it secures the network by validating transactions and maintaining a decentralized consensus.
The mining process is designed to become more difficult over time as the total number of bitcoins in existence approaches its maximum limit of 21 million. This increasing difficulty helps maintain the 10-minute block interval and ensures that the network remains secure as more miners join the system.
It's important to note that Bitcoin mining consumes a significant amount of electricity, which has led to concerns about its environmental impact. Consequently, there is ongoing debate about potential changes to the mining process to make it more energy-efficient or to explore alternative consensus mechanisms.

Bitcoin mining does not involve “solving complex mathematical puzzles”. It involves making an astronomical number of attempts at guessing a number that leads to a valid block. 2. GPU mining has not been profitable in Bitcoin since ~2013. 3. Mining doesn’t validate transactions, every node validates transactions when they add them to their mempool. Miners just build blocks from what is in their mempools.


text:
Are there any Mining OS to be started from USB?
Considering my PC as a mining rig I don't want to install anything on HD. Setting up a system with full GUI mining capabilites (proprietary drivers, OpenCL, ...) can take some time. An out of the box solution would be nice.
Are there any preconfigured OS distributions (maybe Linux) containing all you need to boot and mine without further configurations?

LinuxCoin is probably the closest thing to what you're looking for. According to the wiki, Linuxcoin is:

A lightweight Debian-based OS which includes in the image everything
  that is necessary to run as a Bitcoin client and everything needed to
  get started mining on ATI hardware.

Edit: It may also be worth looking into BAMT if your operation is of significant size
Update: How things change... BAMT is now the de facto mining distro. I'm now having a difficult time even finding a live link to download LinuxCoin from and BAMT has gone from experimental to a full-fledged mining distro usable for nearly any scale. I highly recommend BAMT over LinuxCoin.

it should also be noted that LinuxCoin is rather heavyweight, it does not like running on small dedicated systems.

Thank you! I was thinking of rolling my own when LinuxCoin was proving too difficult to set up, and I have never heard of BAMT. I'll definitely look into it.

BAMT seems to be defunct now, the URL is 404 and domain bamter.com not found. Unsurprising perhaps as GUI mining is long obsolete for Bitcoin.

It is an old question, but still showing up in Google, so it is time for an update for 2019.
https://getpimp.org/
https://simplemining.net/
https://www.smos-linux.org/
http://ethosdistro.com/
https://hiveos.farm/


text:
Why does poclbm acquire 100% CPU?
I recently switched from WinXP32bit to Windows7. While under XP poclbm took about 5% CPU Time of one core, now it uses one core with 100%. Is there a specific reason for that?
I now use AMD/ATI OpenCL1.1 and poclbm with poclbm.exe -device=0 -v -w128 -f 60. MHash/s is about the same I had with XP.

This is a common problem whose cause is not well known. You can try switching miners, switching flags, or switching OpenCL versions. Usually you can find a combination that resolves the problem. I've seen this question asked several times and I've not yet seen a solid answer.

I have seen the ATI 11-7_vista64_win7_64_dd_ccc_ocl drivers cited often enough that I feel comfortable suggesting that @mbx check what driver version is installed. This specifically affects Win7 64-bit and downgrading to an 11-6 version of the drivers appears to resolve many such issues.

I also get the issue, but i'm using nvidia.

I believe the blame lies on AMD's driver. I've heard that 11.9 might have fixed the bug, but am not sure. 11.6 works for me on Debian Squeeze without the cpu usage bug.

AMD Catalyst drivers have a bug which result in 100% CPU usage.
The current drivers (11.9 as of writing) solve this bug for SINGLE GPU systems but MULTIPLE GPU systems are still affected by the "100% CPU bug".  This isn't anything that can be fixed in software it must be fixed by AMD driver team.
The 11.10 preview driver also doesn't (at time of writing) solve this 100% bug on multiple GPU systems.
I have heard (but can't personally confirm) that Nvidia drivers also have a similar bug with OpenCL drivers.

I'm running with NVidia GeForce 9800 GT, on Gentoo Linux with version 295.20-r1, (the latest I believe) exactly the same problem. My guess it's a bug with poclbm