text:
More receive addresses with electrum
I cannot find any documentation or an option anywhere in the electrum client to put it into expert mode. I'm not even sure it can be done any longer, and it is important I raise the gap limit. It like chasing after a myth.
How do I put it in expert mode? Why has that been made so difficult? It seems against every principle of free software.

I have noticed I can run electrum --gap=15, but it isn't creating more addresses like I expected.

related: https://bitcoin.stackexchange.com/q/37739/5406

There's no Expert Mode anymore. The Gap Limit has been hidden from the UI as it was unnecessarily complicated for normal users, and it is not a good method for merchants.
If you need to change the gap limit, enter this in the Console tab and restart the client (Tested with Electrum 3.0):

wallet.change_gap_limit(10)
wallet.storage.write()
To view/verify the current gap limit, type the follwing in the console:
wallet.gap_limit

Better would be the following: wallet.change_gap_limit(10)

For one new address type in electrum console:
wallet.create_new_address(False)

For 100 new address type in electrum-console:
for i in range(0, 100): print wallet.create_new_address(False)

I could be wrong here, but I believe Electrum 2.5.4 uses the gap limit like a buffer, where it will always generate that many additional addresses as you use up existing ones. In other words, you'll always have that many "available" addresses.
For example, if you start a new wallet, and your gap limit is 20 (which seems to be the default), once you receive your first transaction (on the first address), a new address will be derived for you from your seed to keep the number of "unused addresses" at 20.
Looks like the algorithm for this is here: https://github.com/spesmilo/electrum/blob/0dcaa13d314225826c40bf578e199adda1e5c23e/lib/wallet.py#L1551
And it looks like you can change this from the default via the command-line: https://github.com/spesmilo/electrum/blob/c86ef5e8b0dcebf1940a68e8857165e6e4768920/lib/commands.py#L638


text:
How does proof-of-stake "mining" work?
I know and understand the concept of proof-of-stake. Instead of requiring users to do a certain amount of power-intensive hashing "work", it requires you to own a certain stake of the currency in order for you to mine new coins.
But how does the actual mining process work? In PoW mining, people "find" blocks by generating a hash that fulfills a certain condition. How can one mine a PoS block? Is a miner required? Or does just anyone holding coins get their share after a certain amount of time?
In Peercoin specifically, is PoW and PoS mining done independently or do they interfere or influence one another?

In Nextcoin, proof of stake is used.  So the "mining" process there is just about holding coins and leaving your computer on.  It doesn't involve powerful CPUs.
Each block (every 60 seconds), a random Nextcoin is selected to be the next "miner".  There are 1 billion coins so the odds of a single wallet being selected is the number of Nxt in that wallet divided by 1 billion.  (Also, it's possible to calculate and agree on who that node is so the transactions need only be sent to that particular wallet.)
If a node with the selected wallet is running, it will collect the transactions, make a block, and send it to the rest of the network and collect the fees.  If the computer is turned off, however, then the entire network will have to select a different nextcoin to make the transaction.  This time, the unresponsive wallet will be ignored.  The network would suffer in that the time to make a block is decreased, but the thought is that people wouldn't leave their computers off if they have a lot of NXT because they're missing out on all the fees that they could have collected.
If you only have a few NXT, you can leave your computer off: You probably wouldn't have collected much fees anyway.  But, your odds of being selected were low so it probably won't decrease transaction times much.

How can a network with different incentives agree on a random number in a way that can't be manipulated?

also, couldn't i build a chain where i'm the only miner because i was the only person online at those moments? wouldn't my chain win against the current chain?

so as I understand, a node with lesser stake coin will have less probability to be a miner right ?

The best explanation I found [until now]

For Peercoin specifically, PoW and PoS blocks are independent. Just as you're betting your consumed electricity and CPU-time vs. the possible PoW-blok's reward, in the PoS blocks you're betting your coin-age: the amount oF PPC you own multiplied by the number of days they've sitted idly at your wallet. It must be a minimum of 30 and a maximum of 90 days for your coins to start generating tickets for the PoS raffle.
Should your ticket win, you earn 1% interest and lose all your coin-age, so your coins are, from the network POV, as though you had just received them. I.e. you'll need to wait another 30 days for them to be able to pay you interest again. Over time, though, you're just supposed to earn about 1% annually.
Since code for PoS and PoW are independent of each other and the concept of PoS so new, there have been a couple bugs to be fixed plus a kind of attack was found that allowed users to generate a lot of PoS raffle-tickets for "free" - fortunately Sunny King has been able to fix such problems quickly.

What is included in the hash for a PoS raffle ticket?

Proof of Stake uses fundamentally the same process as Proof of Work, but with a few key differences.
In Proof of Work miners are searching for a hash of the transactions in mempool + data from the last blockheader, and that hash must be below a certain target value to be accepted by the network.  The target is the inverse of difficulty, essentially the new hash must have a number of leading zeros, the more leading zeros, the less likely it is to find a hash by chance.  PoW uses the nonce (number once) and the mempool transactions and previous blockheader data, and iterates over as many random nonces as it can per second to output hashes hoping to find a hash with an amount of leading zeros that will be accepted by the network.  So in PoW the more nonces and hashes per second you can create, the better chance you have of finding a hash that meets the target.
Proof of Stake varies in that there is no nonce that can be iterated over, rather the unspent transaction outputs (UTXO) in the nodes local wallet are iterated over.  The main variable then becomes time, the time of each hash attempt is part of the hashing, and thus allows 1 hash, per UTXO, per second.  So a wallet with 100 UTXOs can only create 100 unique hashes per second (the node could create more hashes but that would be pointless as they would just repeat).  Some coins mask the bottom bits of the epoch time, to limit the amount of hashing further, often to hashes every 8 or 16 seconds.
To prevent users creating many tiny UTXOs there is a lower limit of coins that are viable for staking in a UTXO (often around 0.01 coins) and the difficulty is modified by the number of coins in a UTXO; a UTXO with 2 coins has a hash target that is twice as easy as a UTXO with 1 coin.  In this way then we can see that every coin staking has a roughly equal chance of creating a block, and a user with a large number of coins will be likely to make more blocks and earn more transaction fees than a user with less coins.
There are variants of PoS, but they all basically work in this same way, and by doing so prevent the need for massive quantities of computing power to spew out zillions of nonces and hashes to secure a block-chain.

The word "nonce" has been in the English language for centuries (https://www.merriam-webster.com/dictionary/nonce), and it does not mean "number once".

source: Stack Exchange

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

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

sort: votes


text:
What is the relationship between hash rate and accepted shares?
Specifically this question is about Litecoin, but I suspect the answer would apply to both.
Say you have a rig mining at 700Kh/s (LTC). It seems that you get, more or less, a one or a few accepted shares per second.
My understanding is that when mining, you're iterating through 0 to ~ 4 billion for your nonce. One of those nonce's is the number you're looking for and will result in an accepted share.
On average, you'd expect to solve for the correct nonce in about 2 billion tries. But, if you're only mining at 700Kh/s, the math doesn't add up. If you're only trying 700,000 nonces per second, it will take about 45 minutes to find the right nonce.
What am I missing here?

There really isn't one when you are pool mining. Most pools these days use VarDiff to achieve the same number of shares per minute by changing your workers difficulty. Now, on a low end mining rig (lets say 20 kh/s) the number of shares accepted may vary greatly as you may have some great luck with your share or it may be bad luck. So as long as you have a "sane" level of hashing power you shouldn't see (m)any trends/changes (as long as the pool+VarDiff is properly set up).
That being said, when you are first connecting to VarDiff enabled pools you will start at a diff of 1, then it will adjust over a period of time to achieve a share per minute rate that was defined by the pool op.
Source: Me, I'm a pool-op
EDIT
At one time, the number of shares you submitted directly related to your hashrate, the more accepted shares, the faster you were hashing. AsicMiner products still use the protocol originally used by pools (and bitcoind) called "getwork". Most notable of the pool servers used at that time is pushpool.
With VarDiff you don't have the ability to calculate by the number of shares submitted. So you now calculate the hashrate based on the difficulty of the share submitted. I personally have found that when the hashrate calculation based purely on the number of shares submitted is slightly weighed in with your hashrate calculation based on the difficulty of the share submitted, the user's hashrate you calculate is more accurate than you would have if you calculated the hashrate purely on the difficulty of the submitted share.

So the difficulty is the number of leading zero bytes required in the hash, right? So a difficulty of 1 would require only the first byte to be zero, and this would then be easier to find? But will the pool reward you with more LTC for higher difficulty ("quality") shares?

Ahh it seems that's the problem. I'm thinking in terms of the GetWork protocol. VarDiff changes all that. Got it.

"One of those nonce's is the number you're looking for and will result in an accepted share."
This assumption is wrong. All you need to ensure is that your hash is below target (and the target is based on difficulty). So you might hit a block which has no nonce that would give a hash below target, and you might hit a block for which every nonce would give a valid share.
So if, for example, your target is 0x0FFFFFFFF..., then on average 1 in 16 hashes will result in a valid share. And if your target is 0x0000000000000000FFFF..., for example, then you'll probably need to run the loop multiple times to hit a block.

Well then, if your target was 0x0000FFFFFFFF.... on average one in ~65,000 would be valid, right? Then is my comment about 0X00000000FFFFFFFFFFFF.... resulting in one in four billion is right on average?

Yes, if I count the zeroes correctly. But the point is, the amount of iterations for nonce is pretty much irrelevant - it's the target that defines the ratio between hashrate and sharerate, and difficulty is related to target.
Also, pools generally either have a set difficulty for everyone (that means you'd get more shares on lower difficulty, but everybody would be getting more shares, so when the pool hits a block, a single share is worth less), or varies difficulty, and then calculates shares submitted with higher difficulty as worth more when it comes to distributing the block.

I did some quick reading and it seems litecoin uses fractional difficulties... Which makes no sense to me. I always thought of difficulty as the number of zero bytes in the hash. Now it looks like it's whether the hash is less than the target. What would a normal-ish difficulty target look like that would result in one accepted share per second at somewhere around 700-1500Kh/s?

I'm currently mining at difficulty 32 and my target is 0x000007fff800... ; to be perfectly honest, I have no idea what the exact relationship between difficulty and target is. I'd say that this would result in about 1 share per 1-2 seconds on a ~1MH/s mining rig, but you generally don't want to be submitting shares too fast, or you risk getting bound by your network throughput.

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


text:
Where can I trade my altcoins?
I'm looking for an exchange to trade my altcoins against each other to take advantage of the volatility. Any suggestions for altcoin exchanges?

You mean apart from BTC-e?

btc-e doesn't offer many combinations of crypto vs crypto. Most of their altcoins are tied to BTC. Crypto Street is designed to promote altcoins trading against each other.

Vircurex has a massive number of currency pairs they support.

Crypto Street is a platform launched to do exactly this. We support BTC, LTC and FTC for now. We plan to add additional altcoins as they prove viable or in some way substantial.
(DISCLAIMER: I am one of the owners of the site).

Orbitcoin can be found at https://www.coins-e.com this is a new exchange will a massive range of alt currency.

The most popular and trusted alt coin exchange would be btc-e they accept all the 'major' alt currencies

Here we go, this is the best place atm, if you are interested in a big variety of coins -https://www.cryptsy.com/users/register?refid=9754  click there register and start trading today :)

authors: Надежда Кузнецова


text:
Why do AMD's GPUs mine faster than Nvidia's?
I have been searching Google all day and cannot find any real information. I'm looking for information in detail, such as specifications or the qualities of the GPUs that make the differences.

Summary: different approach to calculations. Nvidia GPUs are more like CPUs, in that they have only a few processors that do work, but faster. ATI GPUs have slower processors, but a lot more of them.
You can find a more complete description on the relevant wiki page :

Firstly, AMD designs GPUs with many simple ALUs/shaders (VLIW design) that run at a relatively low frequency clock (typically 1120-3200 ALUs at 625-900 MHz), whereas Nvidia's microarchitecture consists of fewer more complex ALUs and tries to compensate with a higher shader clock (typically 448-1024 ALUs at 1150-1544 MHz). Because of this VLIW vs. non-VLIW difference, Nvidia uses up more square millimeters of die space per ALU, hence can pack fewer of them per chip, and they hit the frequency wall sooner than AMD which prevents them from increasing the clock high enough to match or surpass AMD's performance. This translates to a raw ALU performance advantage for AMD:
AMD Radeon HD 6990: 3072 ALUs x 830 MHz = 2550 billion 32-bit instruction per second
Nvidia GTX 590: 1024 ALUs x 1214 MHz = 1243 billion 32-bit instruction per second

This approximate 2x-3x performance difference exists across the entire range of AMD and Nvidia GPUs. It is very visible in all ALU-bound GPGPU workloads such as Bitcoin, password bruteforcers, etc.
Secondly, another difference favoring Bitcoin mining on AMD GPUs instead of Nvidia's is that the mining algorithm is based on SHA-256, which makes heavy use of the 32-bit integer right rotate operation. This operation can be implemented as a single hardware instruction on AMD GPUs (BIT_ALIGN_INT), but requires three separate hardware instructions to be emulated on Nvidia GPUs (2 shifts + 1 add). This alone gives AMD another 1.7x performance advantage (~1900 instructions instead of ~3250 to execute the SHA-256 compression function).
Combined together, these 2 factors make AMD GPUs overall 3x-5x faster when mining Bitcoins.

Mining is all about IPC. Hot, nasty, bad-ass IPC.

what is IPC????

Instructions per cycle


text:
Is it possible to run bitminter on 2 computers with one account?
I have 2 Ubuntu 12.04 machines. I'm running bitminter on both. But the website in the workers section only lists what one computer is doing.
Do I need 2 accounts for this setup or something?

You can use separate worker accounts if you want separate statistics for your machines. Otherwise just run all of them under one worker account.
If some of your workers are slow they may show as zero hashrate at the website. This is because pool websites estimate your hashrate based on how often you send in proofs of work (aka "shares"). For slow workers this does not happen very often and the website is unable to make a good hashrate estimate. As long as you see the worker statistics for accepted proofs of work going up everything should be fine. View the worker stats, wait a while, refresh the page - if the stats went up, it is working.

authors: شخصيه مجهوله


text:
bitcoin mining on a laptop gpu, nvidia GT 120m?
i have a laptop with a discreet GPU, no integrated ones.
its a Nvidia GT 120m in an ASUS laptop.
i never use the laptop, so i decided to turn it into a bitcoin miner using bitminter.
at the moment it is just doing 4Mhps. while one of my desktops with a nvidia 8800GTS is doing 13Mhps.
i believe the laptop gpu is suppose to be faster.
anyone have any solutions to a problem like this.
oh and both systems use ubuntu 12.04

Laptop gpus are no good for mining bitcoins. Not anymore, at least.

In future, some explanation is really needed to make an answer like this helpful.

Your laptop GPU will be competing against miners who mine at GHps, people who have specialized hardware for mining. You're orders of magnitude slower than they are. Ultimately whether it is worth depends on how much time you have and the cost of electricity, but it will require a lot of patience.


text:
Can you transfer Bitcoins from one address to another address directly without going through the web?
If you and a recipient both have a wallet on a flash drive, is it then possible to transfer bitcoins from one wallet to the other using a computer without going through the web?
Example in life: "Here you go nephew, I'll give you 5 bitcoins for your birthday." Then we go to the computer with our wallets and transfer the funds, without waiting for people to decrypt bits and pieces of it across the web, just relying on the local computer.

No, Bitcoins cannot be transferred to another address without connection to the network.
Bitcoins are not actually stored on a particular device, Bitcoins only exist as claims noted in the network's ledger, the blockchain. What is actually stored on the device's wallet are the means to exert control over Bitcoin claims, the private keys. (For the user's convenience, the wallet also presents information on what the total of that claims pertains to.)
Therefore, to send bitcoins to another address, the state of the public ledger needs to be updated, which can only happen by a transaction being broadcasted to the network and accepted into a block, recording the change in claims of the sender and recipient.
However, bitcoin claims can be transferred by passing along the control over the claims, i.e. by giving the recipient access to a private key. This can be achieved for example by giving the sender an electronic copy of a private key or a paper wallet.

Yes, the simplest example is that you could create a paper wallet, send coins to that wallet, and give the paper wallet to your nephew.
In this sense, the paper wallet act similar to a bearer bond. Whomever holds it, has access to the coins. The caveat is that your nephew has to trust that you don't spend the coins (since you have seen the private key).

This does not transfer funds from one address to another.

No, this is not how bitcoin works. Bitcoins don't really "exist" per se. Bitcoins are just an abstraction from the public ledger, or blockchain. So basically when you mine, the blockchain has a built in mechanism for rewarding miners. This is where the initial money comes from. When those miners give someone else bitcoins, those people don't "own" the bitcoin in their wallet. They only have control of the bitcoin because the blockchain says that they do. All that is stored in your wallet (mostly) is a public and private key.

There is one way though. If you want to give someone a few bitcoins, pre create a new address and transfer those many bitcoins to it, and when you meet him when there is no internet access, give him the private key of the new bitcoin address. This way, you can give bitcoins even if there is no internet access.

You can either do this by giving him an electronic copy of the private key or by giving him a paper wallet.

While this is possible it is a lot like a traditional check. For example, if we are both in a starbucks with no internet access (as is the case more and more), and I would like to reimburse you for the coffee you just purchased for me, having a satoshi client (original client), I can create a raw transaction from my wallet.dat file and the blockchain I have saved locally containing unspent coins.
This is similar to a personal check. You can hold on to this signed transaction until you find a location with internet and then "deposit" it to the network. As with personal checks, at least in the US, if I am dishonest and either sign a bogus transaction, or spend the coins before you can deposit your signed transaction, the request will "bounce" and you will not get any coins. At least there's no overdraft ;)
tl;dr offline payments are possible however you should do so at your utmost discretion and only with people you know and trust fully.
More info on transactions and how they work here: https://en.bitcoin.it/wiki/Transactions


text:
Digital currencies pegged to dollar value
Some digital currencies, like NuBits, declare that they peg their value to dollar or other fiat currency.

How does this work?
Under what conditions this can work?
Can this be distributed, or does there have to be trusted parties who are always willing to exchange NuBits back to dollar and vice versa?
Are there other such digital currencies? I understand BitGold value comes from real gold bars which match to tokens on blockchain, which is little different I believe.

I don't know about digital currencies in particular, but the way that a peg usually works is that some large and rich entity announces that, on request, they will exchange unlimited amounts of one currency for the other at 1:1 (or another fixed rate, plus nominal fees).  This effectively keeps the market price from moving above or below the fixed rate; in any proposed trade at any other rate, one of the parties could get a better deal at the rich entity's exchange.

Meaning it's centralized and highly risky as it requires a rich party in both USD and in coins (i.e. premine) that can be trusted to stick around and be honest forever and not run off or get closed down by the government (which on all accounts, history shows, they will).

NuBits is really interesting in how it pegs to the USD, which they explain in the white paper. I'm guessing you don't want to go hunting through there (white papers can be ... daunting), so the short version is....

If the demand for NuBits goes up (ie, lots of people want to buy Nubits, so the price for a NuBit should rise above $1 USD), the custodians of NuShares ("Shareholders") will vote to issue newly minted NuBits to satisfy the demand and therefore drive the price back down to $1 USD.
If the demand for NuBits goes down (ie, nobody wants NuBits, so the price for a NuBit should drop below $1 USD), holders of NuBits are able to "park" their NuBits (aka, keep them off the market) in exchange for dividends paid in PeerCoin, which reduces the supply and drives the price back up to $1 USD.

There's actually lot more going on here than these two things, but these seem to be the main ones. More importantly, they seem to be working as NBT has been transacting around $10,000 USD daily (as of today) and I've only seen the price fluctuate +/- $0.01 USD over the past few months.
If you want the whole story (which includes lots of other mechanisms to stabilize the peg to the USD), take a look at the price stability page on the NuBits website.
The practical conclusion here is: if you ever see NBT selling for more than $1 USD, don't buy it, because the price will be back to $1 USD soon, so you're wasting your money.

holder of Nubits are able to park their nubits, is that a typo? shouldn't it be NuShares?

I don't think so. If you own NuBits, you choose to "park" them and earn interest on them in exchange for keeping them off the market. If you crack open the NuBits GUI you have an "Park" tab where you can choose to park your NuBits for a fixed amount of time. (related: https://nubits.com/about/faqs#how-is-interest-paid-out)

Probably in a similar way as companies hedge against currency fluctuations.
You could sell a basket of fiat currency against the dollar to protect for dollar strength., What they can not do is protecting the crypto currency from decline, so obviously there is a risk as soon as the crypto currency declines in value.
We have seen how well pegs can play out if the hedged assets value goes in a different directions - take the swiss franc euro peg for example.
Lets also not confuse a "backing" and a "peg", if the currency or derivative is backed, then for every unit theres a defined amount of redeemable backing unit. If we have a "peg" theres definitely risk on one side.


text:
What is a Finney attack?
What is a Finney attack? Extra points for explaining its purpose, the prerequisites for it to be possible, how the attack can be performed and the origin of the name "Finney attack".

The Finney attack is named after Hal Finney, who suggested it in this comment. (Hal happens to be the first recipient of a Bitcoin transaction, and the first person to comment on the release of the Bitcoin source code.)
It is a double spending attack with the following features:

It only works if the merchant accepts unconfirmed transactions.
It still works, however, if the merchant waits a few seconds to
verify that everyone in the network agrees he was paid.
It requires the attacker to be mining and controlling the content of
his blocks; however, he can in theory do this with any hashrate, in particular significantly less than 50% of the network hashrate.

It proceeds as follows:

The attacker mines blocks normally; in the block he is trying to find, he includes a transaction which sends some of his coins back to himself, without broadcasting this transaction.
When he finds a block, he does not broadcast it; instead, he sends the same coins to a merchant for some goods or service.
After the merchants accepts the payment and irreversibly provides the service, the attacker broadcasts his block; the transaction that sends the coins to himself, included in this block, will override the unconfirmed payment to the merchant.

If the time from finding the block until the attacker sends payment and the merchant accepts it is t, and the average time to find a block is T, there is a probability of t/T that another block will be found on the network in this time; in this case the attack will fail, and the attacker will lose the block reward of B.
This means that the average cost of attempting the attack is about (t/T) * B; as a rule of thumb the merchant should wait at least t=V*T/B (V is the value of the transaction), to make sure that trying to carry out this attack against him isn't profitable; this may not be sufficient though, as a nimble attacker can use the same block for multiple attacks, potentially gaining the total of their value.
Clearly, the lower the attacker's hashrate, the less opportunities he has to carry out the attack. If the attack is for obtaining some illiquid good, it is difficult to make the need for this good coincide with finding a block. If the attack is for obtaining something liquid (e.g. exchanging bitcoins for other money), an opportunity is ever-present but the merchant is likely to require a few confirmations. This makes the attack difficult to use in practice.

The Finney attack is a variation of a double-spend attack. The attacker creates two transactions - one crediting the victim and one crediting themselves. They keep the first transaction for now and proceed to try mining the second one into a block. When they succeed (this may take awhile), they quickly make a purchase with the first transaction, get the goods they purchased, and then release the pre-mined block. This way the first transaction will become invalidated, even if it is propagated through the whole network.
This variant of double-spend attack is harder to execute (mining a block by oneself hasn't been easy for a long while), but is undetectable until it has been fully executed. The only way to protect oneself against such an attack is to require at least one confirmation for transaction before giving out purchased goods, and requiring more confirmations for transactions worth more.

Considering the bitcoin network is now so humongous, is the Finney attack purely theoretical? Are there any past records of the Finney attack suspected or happening?

@Pacerier As far as I remember I heard that some mining pool was regularly using this against gaming websites like SatoshiDice. Essentially, you create a block with a transaction crediting yourself. You send a conflicting transaction to SD that can net you more than the block reward. If you lose, you release the block and get your money back. If you win, you discard the block and keep the winnings.

Wow, so SatoshiDice could be bankrupted by repeated acts of this?

@Pacerier Yes, unless they switch over to only processing bets with 1+ confirmations.

Seems odd that no one has attacked SatoshiDice yet. It looks to be a really tasty target.

@Pacerier maybe someone has, but maybe they are making enough money not to care. Beats me.

can you explain for me, why the first transaction will be invalidate. For example, you have 10 coins. you move 3 coins to yourself, and you buy other 3 coins. I see no conflict in here. thanks.

@hqt If you send 3 coins to yourself and you sell the exact same 3 coins to someone else, only one of those transactions will go through. You aim to create a conflict and get it into a block.

@ThePiachu so the key point is exactly that same 3 coins (look like each coin has something similar like id). We can control this action ? thanks

@hqt Read up on Bitcoin transactions, TxIDs, etc. You first need to understand how those work to understand why Finney Attack works.

@ThePiachu "If you win, you discard the block and keep the winnings." Why even discard can't we keep both, unless we will only get win money after transaction has been confirmed.. But the website that does not even see if transaction is confirmed and lets you place the bet, won't even try to confirm other thing too, am I right?

@SurajJain the block you are mining doesn't have the transaction. It's meant to roll back what you did in case you lose. Otherwise it's not a finney attack

@ThePiachu I meant If I win and I have been credited money then Why discard the block that contain transaction to me, as that way I will get my money also back which I used on bet, I mean why not roll even after I win, will get to keep both

@SurajJain You are creating a block WITHOUT the transaction. If you LOSE, you release your block, thus cancelling the bet. If you WIN, you discard the block and keep the winnings.

Does after winning they would check the transaction to be confirmed before giving price?

I thought we would get winning price instantly and then we would release that block so we also get to keep the money we spent on the bet.


text:
Using the bitcoind -testnet test network and automatically creating test wallets
I am developing some bitcoin based services and I am interested of automatizing testing for them.
bitcoind seems to come with -testnet option. What are the best practices of using this?

How to create wallets for tests - should they be persistent or temporary
How to spoof balances of the wallets
How to make fake payments and how to debug them - does there exist anything akin blockchain.info or block chain explorer for them

Each instance of bitcoind running with the testnet option creates its own wallet.  You cannot spoof wallet balances, but you can mine coins on testnet with minimal hardware as the difficulty resets to zero (or 1) on a regular basis.  You can also get testnet coins from faucets online.  You create payments and addresses on testnet the very same way you would with the non-testnet version of bitcoin (either via the JSON RPC interface or CLI commands).  Also blockexplorer for testnet is located here http://blockexplorer.com/testnet

Can you recommend any way to automatically created testnet wallets with some balance, set by the unit test, on them?

I think you will manually have to create these wallets and send testnet coin to them I'm unaware of any way to automate the process.


text:
How does first seen replace by fee work?
This pull request describes first-seen replace-by-fee. How is it different from normal replace-by-fee, and how does it compare to child-pays-for-parent?

Right now, for the most part, Bitcoin miners follow a First-Seen-Safe rule: If 2 conflicting transactions show up in the mempool, the miner sticks with the one it saw first.
Replace-By-Fee would enable miners to remove transactions from the mempool based on which transaction pays the higher fee. This is problematic because it enables fraud. If I pay a merchant and walk out, I can then easily broadcast a conflicting transaction which sends the money back to me with only a slightly higher fee. The merchant doesn't get paid, but I get the goods for a slightly larger transaction fee.
With Child-Pays-For-Parent, an unconfirmed transaction(parent) can be raised in mining priority by spending their output(children). The extra fees that would come from children offer incentive for the miner to include the parent transaction. CPFP relates to RBF as a way for a merchant to fight fraud. If a merchant detects that a payment they were expecting has been rerouted, they can raise the priority of their preferred transaction using CPFP. This is a contentious solution to make RBF acceptable.
First-Seen-Safe Replace-By-Fee follows the RBF rules, but puts some requirements around replacing transactions in the mempool. When replacing a transaction based on higher fee, all the amounts of all the outputs from the original transaction need to be met. You can add and remove inputs, increase past output amounts, and add new outputs. You are allowed to modify transactions as long as you meet or exceed the past outputs.
With FSSRBF you can safely accept transactions that spend confirmed outputs, but not unconfirmed transactions spending outputs of other unconfirmed transactions. CPFP is useful beyond RBF, but is not necessary for FSSRBF usability.


text:
Simple GPU miner with long pooling C++
I want to write own GPU miner, but I can't find any simple solution (cgminer and RPC miner are big projects with many useless to me functions). I need the sources of only one GPU miner with long pooling, nothing more.

This is the simplest miner I know of:

pyminer
This is a 'getwork' CPU mining client for bitcoin.
It is pure-python, and therefore very, very slow.  The purpose is to
  provide a reference implementation of a miner, for study.

This doesn't support long polling, but there's a spec for that here.
:)


text:
How to mine with 1k PC's?
I have a network of 1k+ PC's (not a botnet). Could you advice me how can I mine effectively for one pool, for only one pool account, maybe you have any solutions?
I think it should be CPU miner because I can't bypass GPU drivers on each pc.
All PC's in network have our application always running, so I think better way is to add to our application mining code, but I cant find any simply solution without useless features.

fyi Roman, you are being downvoted because the question of whether CPU mining is even profitable at all has been answered here extensively (it is extremely unprofitable).

You will be using way more power(electricity) than you can ever gain in any virtual currency at the moment. To you the power might be free, but the owner(s) of the PC will pay dearly.


text:
What's the size of the last Ripple ledger and the indices to search through it?
What is the size of the current ledger and all indices required to efficiently search through it or query it? Also, how will this size grow relative to the number of Ripple users?
Side-question: what database technology is used by rippled to store the ledger?

Ledger 8470000 in JSON format (without inner nodes) is 115 MB large. You can get it if you issue the "ledger" API call on a rippled that you own - it's an admin-only call, as it takes lots of ressources to assemble it.
If you are asking about the size of the databases rippled uses in the backend, these are about 9 GB (ledger headers + validations archive) ~100 GB (transactions) and ~320GB (RocksDB node store, snappy compression enabled) on my node.
Rippled can utilize several backends, the most mature/recommended is RocksDB, a LevelDB adaption by facebook. In general rippled just needs a high performance key-value store for the largest chunk of data (nodes), transactions and other stuff is stored in SQLite databases.

Are those values for the latest ledger only? In rippled you have the option to not store historical data, but only the current ledger (balances and outstanding offers, but no transactions).

These values are for running a rippled server with full history (= it'll try to get as much history as possible, down to eventually ledger 32570). I am not aware of a setting that tells rippled to not store transactions.
If you set rippled to not fetch full history (by default it'll fetch just 256 ledgers back) it will store the ledger number it saw when starting up, fetch backwards until it reaches $startup_ledger - the number set there and then keep on storing data, until you delete everything and restart, this changing the starting point.

https://github.com/ripple/rippled/blob/develop/doc/rippled-example.cfg#L496

This will still fetch and store transactions from the past (up to the configured depth) and store all future transactions from the time it connects to other servers.


text:
Please explain getwork
Request:
POST / HTTP/1.1
Host: de.btcguild.com:8332
Accept: */*
Accept-Encoding: deflate, gzip
Content-type: application/json
X-Mining-Extensions: longpoll midstate rollntime submitold
Content-Length: 44
User-Agent: bfgminer 2.99.1

{"method": "getwork", "params": [], "id":0}

Response:
HTTP/1.1 200 OK
Server: nginx/0.7.65
Date: Sat, 13 Apr 2013 21:55:23 GMT
Content-Type: application/json;charset=ISO-8859-1
Connection: keep-alive
X-Long-Polling: /LP/
X-Blocknum: 105632
Content-Length: 607

{
"error": null,
"id": 0,
"result": {
"data": "00000002df54a70cd769d78b9605c0a6574638db799e86bdd1183cfc000001c2000000009e7ed0ae4ccdb1dbf283f4ab608791f21b1a5f437f405f4f9ba0bb3b693506a95169d43c1a022fbe00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
"hash1": "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
"midstate": "24a747c3d16eadbc1481bd342b5558b2e235301c11353faf4bc25a384102c9c9",
"target": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000"
}
}

In the request/response what does id do?
In the response what is data and how is it generated?
What is midstate?
How does target work?
In the request what are these X-Mining-Extensions: longpoll midstate rollntime submitold parameters for?

Look at http://www.jsonrpc.org/specification: "An identifier established by the Client that MUST contain a String, Number, or NULL value if included. If it is not included it is assumed to be a notification. The value SHOULD normally not be Null [1] and Numbers SHOULD NOT contain fractional parts [2]." To put it simply, it is really just an identifier for a message.
https://en.bitcoin.it/wiki/Block_hashing_algorithm
To put it simply, midstate is just the hashing done on the first half. We need the hash done on the whole data, but since the first part of the data doesn't change, we can just calculate it so that we don't have to perform full hashing everytime.
The target specifies the difficulty. Only a hash that is smaller than the target is accepted. In other words, you can also say that the target specifies the number of trailing zeroes required in the hash.
https://en.bitcoin.it/wiki/Getwork


text:
Is mining faster with 2 GPUs in crossfire or with 2 PCs with one GPU each?
Is it faster to have 2 separate computers with the same graphics card but different specs, or one computer with 2 GPUs in crossfire?
By math, they should perform the same im guessing at the same clock speeds

They do indeed perform exactly the same
Crossfire is not encouraged as it gives no advantage and may impact your overall performance. The computation is done in parallel on each card so there is no need for them to communicate among each other.

Is this the same for Litecoin?

@makerofthings7 Did you find a answer? If yes. could you share it?


text:
Is there really this big a difference between AMD and NVIDIA?
As i am thinking of builing a system with a evga 670 i was wondering how much better a similarly priced AMD card would be in mining?
The bitcoin wiki
shows a hashrate of 406MH/s for the GV-R787OC-2GD  (a $250 card) while the EVGA GTX670FTW 2GB gets only 112 MH/s (a $400 card).
This seems really off to me. Is there really this big a difference?
As on many websites it says AMD is so much better for mining while because NVIDIA has Cuda everyone says its best for editing why doesn't cuda drive up Mhash/s?

Is there really this big a difference?

Yes.

As on many websites it says AMD is so much better for mining while because NVIDIA has Cuda everyone says its best for editing why doesn't cuda drive up Mhash/s?

CUDA's a software framework for making GPU-based software eaiser to write. More stuff supports NVIDIA cards. Bitcoin GPU miners support both, so CUDA doesn't matter.


text:
How to get the immature balance of an account?
I have run bitcoind and have several accounts. How do I get the immature balance of one account using RPC calls (if possible) ?

Using the listtransactions command, you can see your immature coinbase transactions listed with category immature.
listtransactions appears to include both spent and unspent transactions in general, but since immature coins cannot be spent, that shouldn't be a problem.
Since accounts are now deprecated, you can get the immature balance for the entire wallet with getwalletinfo; look at the immature field.
Note that getbalance does not include immature coins.

With the getbalance command you can specify an account and minimum confirms, I'm assuming my immature balance you mean account balance containing unconfirmed transactions. By default it's at one.
getbalance [account] [minconf=1]

https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

Usually "immature" means generated coins under 100 blocks deep in the blockchain. (I don't know if there's a way to get this in balance form from bitcoind)

Yes as @Luke-Jr says, I meant immature in that way, not transactions with low confirmations.

Can someone point me to the code section in source tree, I am running some experiments and I would like to change the 100 block limit to 10 blocks for the same. Thanks


text:
What are good ideas to help promote Bitcoin?
Even though I'm a person that is usually informed about anything related to new technologies in any area, I can't believe how I didn't know about Bitcoin until a few months ago.
Then I thought, people that don't even care about this kind of stuff will never know about Bitcoin.
Even worse, I live in a developing country and when I comment about this they think it is like a game. It is really hard to explain to somebody without enough knowledge that the system really works and could be daily used in a near future.
So my question is, how can I evangelize the Bitcoin usage between the majority of people?
So far, my ideas are:

Try to sell BTC at market price (not making profit).
Encourage stores (mostly online) to use it.
Have a local store with discounts for paying in BTC.

I'm not sure this question is a good fit for this site. Perhaps you should start a thread on bitcointalk.org ... I would just try to learn all you can about it, and talk to people. The number 1 motivation at this point is profit/speculation ... so if you can get people to believe that this is a good long-term investment, you've helped Bitcoin. Don't bring any short term speculators though, they just add to the instability.

As it stands the question is likely to encourage debate rather than facts. As @ripper234 has commented, this would be better placed on Bitcoin Talk

I am not asking about what is the best to do. I am just asking about good ideas to promote it. Why would that encourage debate?

@Tomas - because the question doesn't have an objective measure to test whether an answer is good. Like or dislike it, this criteria is part of what defines good SE questions.

I'll close this for the very reason stated by ripper and Gary. Nothing personal Tomas, it's just not the kind of question that StackExchange is intended for.

I carry around with me a Casascius physical bitcoin (and another one that has been peeled).  This gives a great visual aid in explaining it in terms another person is already familiar with.
You can encourage people to visit the faucet, and then do a trial run spending it, as described here:

http://www.bitcoinmoney.com/post/25967017874

You could print up some Bitcoin notes with a trivial amount of bitcoins (e.g., twenty cents worth) and hand them out to people.  Put an expiration on it and if the funds aren't redeemed within that time (e.g. a month) then you reclaim the funds and give them out again.  But at least every one that does get redeemed, you know that person (or whomever they gave the note to) now knows what a bitcoin is and how it can be transferred.
But the point to get across is that this is not just neat technology or some type of marketing of a new product.  This is how we defang the financial system that repeatedly harms us (or at least lessens our reliance on it).
Every time a bitcoin transaction replaces a PayPal transaction it is like placing a pea on "our" side of scale versus the bricks holding their side down.  The scale has a big plate though, and eventually all of our peas together will cause it to tip.
But that's how decentralizioin works -- one pea at a time.

Tomas, there might not be anything that can be done except wait.  I was one of the people using the internet in 1970s and I thought it was wonderful but I had a hard time convincing other people.  Then in the 1990s it really took off, so now even little children are using browsers.
There is also in your post a hint that unless we market Bitcoin better, it will die.  I don't believe it is up to us.  It lives or dies based on it's own merits.
The thing we can do now is to finish building all the parts of Bitcoin.  There are some parts that are still missing.  For example, a way to import keys into the client.  It is actually very good that public recognition is not happening so quickly.


text:
Will the proof-of-work system end when all bitcoins have been mined?
This article from ArsTechnica is claiming that Bitcoin is not such an environmental disaster, and one of the reasons they mention is that mining will come to an end.
Ok, fair enough, there is an end in mining because the number of bitcoins is fixed but, is there an end to the computation algorithms taking place when generating blocks? My guess was that proof-of-work would still be needed at that time, therefore we would still need ASICs, GPUs or whatnot?

No, mining will not come to an end at that point. The article is incorrect.
Mining will continue once the block rewards are no longer available, as transaction fees will continue to be offered. As the block rewards tend towards zero, the total value of transaction fees in each block will start to exceed the block reward. This will happen long before the block reward reaches zero if Bitcoin continues to be grow at the current rate.
Mining is required to provide the confirmation that each transaction is valid. If mining was to end, it would be because nobody was submitting transactions any more. This isn't anticipated any time soon!
This chart shows the value of transaction fees per day, in BTC. Currently, about 50BTC per day is paid in fees, which works out to be about 0.34BTC per block (50 divided by 144, which is the number of blocks per day).
If Bitcoin remains at it's currently level of popularity, transaction fees will be larger than the block reward by the year 2040. By the year 2064, more than 99% of miner's rewards would come from transaction fees. After 2140, there will be no more block rewards given.
Related questions:

The End of Mining
How much will transaction fees eventually be?

Even if nobody transmits transactions, mining continues. For a significant part of Bitcoin's history, most blocks had no transactions.

if mining will not come to an end, why is this question duplicate of one that is called "The end of mining"? Sounds like we should edit that question to be "Will mining end?" instead.

@PieterWuille and I assume that mining continued because block rewards were high enough to justify mining. But when block rewards have disappeared, mining will only continue if transfer fees justify the mining costs. Or, said otherwise: no block rewards and no transaction fees means no mining. Your "blocks with no transactions" of the "significant part of bitcoin history" had high block rewards.

@dangonfast Good point. Even though the value of the rewards at some points was low due to a low market price, the design of Bitcoin meant that it would rise if it continued to succeed. In future though, if fees are too low then even if some miners still operate out of the goodness of their hearts it wouldn't be enough to keep the network secure and reliable.

@HighlyIrregular but fees are subject to a regular pricing system offer/demand. If mantaining the blockchain has associated costs, few if any miners will operate with fees below those costs, reducing the amount of miners and thus raising tranasction prices. If the bitcoin system does not tollerate those prices (meaning users do not want to pay the fees) the system will collapse. That said, I think transfer fees will anyway remain at a level corresponding to the sum of current transfer fees + block reward, since that seems to be what makes mining profitable.

Well, there will not be the end of mining, people will continue mining once the block rewards are no longer available, but the transaction fee will be continued to offer. Even though the value of the rewards at some points was low due to a low market price, the design of Bitcoin meant that it would rise if it continued to succeed.
Mining is the process to verify the transaction and check if it is valid. Mining will end only if people will stop doing transactions which are not going to happen anytime soon. In future though, if fees are too low then even if some miners still operate out of the goodness of their hearts it wouldn't be enough to keep the network secure and reliable.
The transaction fee is getting low, and people are again investing in Bitcoin. So I don’t think that in near-future Bitcoin will lose its place. And people will keep on mining with higher profits.


text:
Sale and Purchase Transaction Limits
Is there any limitation on the monetary size of transactions to be paid through BitCoins? I conduct a consultancy business where payments from clients can vary between about $5 for White papers to $15,000 for a major consultancy assignment fee. I have not been able to find out this information from the website.

There is no technical limitation. However, to perform a $15,000 transaction, you need $15,000 worth of Bitcoins. There are times when it's hard to acquire that many Bitcoins without moving the market in unfavorable ways. It's worse if you need to cash out. However, if you're willing to buy and sell the Bitcoins slowly or under favorable market conditions, the transfers are not a problem.
$15,000 is not a huge problem right now. $300,000 definitely is. Just remember, if you have to buy bitcoins with dollars and then the other party has to sell them for dollars (or another currency), you'll take a sextuple transfer hit. You'll pay two half-spreads plus two conversion fees. Then, as you buy, you'll move the market up. And as you sell, you'll move the market down. This is a huge issue with Bitcoin today. Just the spread and conversion fees add up to about a 2% loss, assuming prices don't change -- that still beats credit cards.
Bitcoin transaction fees for transferring Bitcoins are based on the size of a transaction in bytes, not the number of Bitcoins transferred. What makes a transaction "expensive" (though we're usually talking a few pennies if even that) is having to "gather" funds from a lot of sources or "scatter" funds out to a lot of different destinations. So your $15,000 transaction will likely cost less than a penny.
So in sum, moving the Bitcoins from one account to another will probably be less than a penny. But in most applications, you have to factor in the cost of buying Bitcoins on one end and selling them on the other.
In the most recently-mined block at the time I wrote this answer, there was a transfer for about $16,000 worth of Bitcoins. The transaction fee was about a quarter of a penny. And currently you can process transactions without paying any fee if you're willing to wait an extra 30 minutes or so. (Because many miners don't care about transactions fees and will include any valid transaction so any valid transaction will get into a block eventually.)

For any sizeable transaction you'll almost never notice a delay for not including a transaction fee.  Transaction fees are expected if you're sending tiny amounts, or if the coins you're sending moved recently.

Why do you assume he needs to buy them one end and sell them the other end?

I don't assume that. That's why I say, "if you have to buy them" and "in most applications".

The only technical limit on the number of bitcoins you can send in a transaction is that you can only send as many bitcoins are you are in possession of, and that there will only ever be 21 million bitcoins in existence.
If you have bitcoins, and someone else wants them, there's no problem sending as many as you like.


text:
What is proof-of-work?
Please explain the proof-of-work concept.
And how does it relate to Bitcoin mining in general, and to the proofs of work (aka shares) of mining pools?

Bitcoin miners find a random number (called a "Nonce") that when inserted into the current block makes the hash be below the current target. They then send that current block around the network and everyone checks their work (the proof-of-work) by hashing the block and checking if the result is below the current target. In mining pools, miners do the same thing, but the current target is much higher (so it's easier). When they find one of these, it's called "mining a share". A small percentage of the "shares" will actually have a hash below the actual target, and the pool will make it's 25BTC profit, then distribute it out to the miners who found a share (normally using some über-complicated method to prevent cheating/pool hopping)

Due to the very low probability of successful generation, this makes
  it unpredictable which worker computer in the network will be able to
  generate the next block.

http://en.bitcoin.it/wiki/Proof_of_work

This is what makes proof-of-work based cryptocurrencies like Bitcoin different from any other form of electronic money.  With access to mining being open to all, there is no way to control (or corrupt) the transaction verification process.
For instance, let's say there was a law passed everywhere mandating that no payments to Wikileaks would be allowed -- that any miner including a payment to the Wikileaks payment address would be punished.
That is a form of centralized control and some miners would comply.  But because other miners would continue verifying those transactions regardless, the worst that would happen is that payments to Wikileaks might get ignored by a block or three of miners who did comply with the law until another miner ignoring the law gets a block.  The economic advantage goes to the uncorrupted miners (who recognize the laws of math and ignore the laws made by man).

The problem that have to be solved is called Proof of work which is basically a brute force.
So you need to know what hash functions are to understand the problem, don't worry its easy and anyone can understand it because solving this puzzle doesn't require intelligence but patience.
A hash function is just a function that when you give it an input of X byte size (data, image, text, anything ...) it produces a fixed length of bytes, for example you give it 5gb video it will produce a string that is 256 byte long(the output size can change from function to function).
Hash functions have some properties and one of them is when you give it different input it always produces a completely different output, so if change only one bit in that 5gb video the output of the hash function is going to change radically. same rule applies when concatenating the video with some random bits.
So in bitcoin, miners keeps listening for transactions and from these transaction they create a block but in order for all participating nodes to accept this block they have to change a specified region in the block and see if the resulting output starts with x number of zero's (because in computers everything is ones and zeroes).
If the result is not correct(output string does not start with 30 zeroes) they change that region again and check the output, until they finally find the right combination of bits in that region that when you pass that block to the hash function it will produce a string that starts with 30 zeroes.
To explain more i will give you a real example:

miner listens for incoming transaction

I create a block that contains all these transaction

inside the block there is specified region that is 32 bit long that is independent from the transaction (for the sake of simplicity lets say all bits in this region is set to 0)

miner hash that block and check the output, if it is a string that starts with 30 zeroes it quickly broadcast it to the network and say i win I found the solution to the puzzle it is a block with these transaction that i selected and that contains this region, you can check it yourself

if the result is not a string that starts with 30 zeroes, the miner changes that region increments it for example (00000.....001) and hashes the block one more time and check if the output starts with 30 zeroes , this step is repeated until the miner can finally find a correct combination of ones and zeroes in that block region so that when he hashes that block with the hash function it will produce a string that starts with 30 zeroes (notice this number changes).

and he has to do this fast because there are lots of miners and the first one to find the block is gonna win. so you can see that the term puzzle is quite (juuust a little bit) misleading.
mining pools are just a bunch of computers that try to find that special combination in the block region(called nonce by the way) to make it easier and faster.


text:
What will happen to mining after the 20 999 999th Bitcoin?
After the 21 millionth bitcoin or 20,999,999th bitcoin is mined, what will happen to bitcoin mining? - will it just stop, or will we make a further division of the satoshi thanks to Bitcoin's infinite divisibility? Or maybe miners could mine a share of the Bitcoin transaction fee...
Any suggestions/mathematical answers are appreciated.

You assume this moment will happen. I'd say economically adjusted cryptocurrencies (if not new and completely different versions of Bitcoin) will spring up, and make the current scheme obsolete long before this moment were to happen. Just sayin'...

Technically, I think you are missing a few decimals.  There's still many years between 20,999,999 and 20,999,999.99999999 or whatever point the very last satoshi is mined.  As far as currency inflation goes though, the block reward stops having an effect long before the 20.9 million range.

Assuming Bitcoin is still active at that point in time, mining will continue, because transaction fees will make it worthwhile to do so.
This topic has been discussed heavily in other answers, including:

What happens once the mining reward gets cut in half?
How many bitcoins will there eventually be?
How much will transaction fees eventually be?

The last link has suggestions that the fee mechanism of Bitcoin may need changing, though that's yet to be proven whether or not it will be a real problem.

I downvoted because market-based transaction fees don't scale. I read that even Gavin has expressed his doubt that they will.

@ShelbyMooreIII, you're assuming we try to scale up with the current implementation, which is not a realistic assumption. I'm working on the assumption that the client and/or protocol will adapt as necessary, which is clearly in progress. If the next phase of adaptations don't resolve the issues, then there will be another phase.

You are willing to risk giving the monopolists the 51% attack because you assume you can make tx fees scale later? Fishing w/o fuel to return? Very responsible given humanity's future hangs in balance. Readers should click to my activity, read many comments of mine to get some context for this comment. Highly Irregular & I have been trading comments else where today. Soon it will be too late for phases. Bitcon will have enough mcap for the monopolists to take over mining and run with it from there as bastardized vision of what you wanted. You will then cry while mankind is enslaved. Good job!

@ShelbyMooreIII, ok, so now you're raising a different concern: that corporations will gain control over the majority of the hashing power. I also have that concern because of the massive hardware requirements a Bitcoin node is likely to require in future, but it needs addressing in a completely separately question that's focused on that problem.

Why can't you see the two concerns are mutually dependent, not separable? Without scalable tx fees, you must have monopolization, else you don't scale and crash and burn (at least in terms of the expectations of the investors). The key issue is always profitability which makes the two inseparable. You see what I mean by people can't assimilate facts as well as I can?

Every block has exactly one "coinbase transaction", the one transaction which doesn't have actual inputs, but gets all the fees and mining subsidy.
Every 210000 blocks, this subsidy halves. Right now, each block is allowed (not required!) to bring 50.00000000 BTC into circulation. Very soon, this will become 25.00000000. Four years later, 12.50000000. And this will continue: 6.25, 3.125, 1.5625, and so on. There are only 8 decimals though, and at some point the subsidy will only be 0.00000001. Four years after that, it will effectively become zero. This will not happen this century, though.
This doesn't mean that there won't be any blocks produced anymore. Assuming Bitcoin is still alive, we'll still have blocks being produced every 10 minutes. Miners will just get all their income from fees, without any subsidy.

The short anwser is that miners will rely on transaction fees, to get paid.

I downvoted because market-based transaction fees don't scale. I read that even Gavin has expressed his doubt that they will.

Pretty much the same will happen as with a Halving now: The only thing that changes is how many bitcoins may be created with the Coinbase transaction; except this time it drops to Zero instead of halving.
In particular, mining would have to continue in order to validate transactions, although it would then be completely funded by transaction fees. However, that will only be marginally different from the years before the last new coins, as it will will have been only satoshis per block for many years before that.

miners will depend on transaction fees.. a block will continue to be mined every 10 mins.
Though bitcoin will not live till that day. For bitcoin to live till that day, it will have to be worth more than a million dollar each. If it isnt that much worth, it will be expensive to mine

Wait, but the increased cost of mining will result in fewer miners, hence lower difficulty and lower hash-rate. Hence it should re-balance, right?


text:
Can Artificial Intelligence be used to mine BitCoins faster?
Can Artificial Intelligence be used to find more efficient mining algorithms?
Is there only one algorithm that can be used to mine?
EDIT: Asking about running the SHA(SHA(block header)) more efficiently to mine Bitcoin, not chainging the Bitcoin mining algorithm.

If you are talking about finding a better algorithm than SHA(SHA(block header)) - it might be possible to optimise the algorithm for some features, like being GPU resistant and so forth, but generally that would be a bit pointless. Changing that algorithm now would undermine the stability of Bitcoin and wouldn't benefit it much. Generally, the current algorithm does it job and does it well - it provides scalable difficulty, the mechanics are still unbroken, and so forth.
As for using AI to try solving the SHA(SHA(block header)) algorithm - it probably would be hard if not computationally impossible at the moment. The algorithm doesn't appear to be broken, meaning that the output of the calculation appears to be quite random, which is not faring good for trying to use AI to solve it.

Edited the question to improve clarity. Has the output of the algorithm been proven mathematically to be random?

@BSeven There are no known collisions, be they practical or theoretical, so the algorithm can be assumed to be safe. You generally don't and in most cases can't prove them mathematically (which is a really big challenge!). Heck, if you could prove mathematically that your hashing algorithm does not have collisions or other weaknesses, there would not be a need for any other algorithm, ever ;).


text:
How do I empty the memory pool?
I have some transactions pending in the memory pool, how do I empty the memory pool without restarting bitcoind ?
I would like the transactions to be cancelled also.

I think with bitcoind this is not possible. Are you referring to transactions to/from your wallet? Or do you mean any transaction?

Transactions cannot be cancelled. The best you can try is to double-spend them and hope that miners will ignore both transactions because you are double-spending. (I don't know what the policies for double-spending are at the largest miners.)

I have rolled back the question at @drcelus' request, who felt that the edit fundamentally changed the question. drcelus: You could have reverted it yourself by going to the edit-history and clicking "rollback" on your version's header.

@StevenRoose Your comment looks much like a decent start for an answer.

Has the transaction already been mined into a block? I'm assuming not since it's in your raw mem pool. Why wasn't it mind in that case? Did it not have any fee?
I would try sending the coins to yourself with a much larger fee than the original transaction. Like Steven Roose said above, once transactions have been sent out to the network, they can't really be undone. Even if you delete it from your raw mem pool, it's still in everyone elses raw mem pool just waiting to be confirmed.
To make your own custom transaction that spends the UTXOs you want to spend, use the rpc calls:
listtransactions
listunspent
createrawtransaction
signrawtransaction

The default behaviour is for clients to accept whatever transactions spend an UTXO first. So most standard clients will not accept secondary spends of specific UTXOs. Mining pools may be a little bit more persuadable.
Not sure how viable this is, but I just found this: http://www.bitundo.com/. Read up on it before giving any money to a service like this. It also only works for transactions that haven't been confirmed into blocks at all yet.
I would also read this article http://bitcoinmagazine.com/2960/instant-transaction-fraud-an-explanation/. It has some very interesting stuff relevant to this question.


text:
What is proof-of-stake?
As we know one of the important mechanisms of Bitcoin is proof-of-work.
How does the concept of proof-of-stake work? How does it differ from proof-of-work?

Proof of stake isn't currently used for bitcoin. I believe StrongCoin (derivative of bitcoin) is using some form of it.

Proof of stake is a proposed alternative to proof of work designed to increase network security. It's not currently implemented in the main chain (and would likely require a hard fork to implement), but alt currency PPCoin features a hybrid proof-of-stake/proof-of-work system of sorts.
With proof of work, the likelihood of mining a block is dependent on the work done by the miner, e.g. the number of hashes checked for validity by a CPU, GPU, FPGA, or ASIC. As such, over time, the blocks are split across miners proportionally to their relative hashrates. With proof of stake, blocks are split relative to current wealth, so someone possessing 1% of the bitcoins currently in existence could "mine" 1% of the proof of stake blocks.
This proposed system has a few (theoretical) benefits relative to proof of work:
Reduced long-term transaction fees
When transaction fees form the majority of block rewards, with the current proof of work system, miners would be forced to require a "minimum" transaction fee if they wish to remain profitable, as they must utilize physical and costly resources (hardware, electricity, internet, etcetera) in order to mine blocks. Proof of stake has no such limitation, as solving blocks would require no physical resources whatsoever (apart from a computer running the Bitcoin software, which is essentially negligible).
Decreased likelihood of a 51% attack
In the current proof of work system, an attacker need merely obtain over half the current network hashing capacity for a short amount of time to perform a so-called "51% attack". With proof of stake, an attacker would need to obtain over half of the bitcoins in existence, a far more expensive and difficult feat. Moreover, performing a 51% attack and likely devaluing Bitcoin significantly wouldn't be all that appealing if you are so heavily vested into it.
However, this is debatable. If a single entity could obtain, even temporarily, loans or other borrowed capital comprising over half the network, they could perform a 51% attack with very little input resources, and might well have good incentive to do so. Just as centralized or leasable hashpower dramatically increases the risk of a 51% attack on a proof of work system, centralized or borrowable wealth dramatically increases the risk of a 51% attack on a proof of stake system.
Proof of stake was first formally proposed by forum user QuantumMechanic here. Two at least somewhat complete implementation specifications have been released, one by Meni Rosenfeld and one by Cunicula; both are explained in detail on the proof of stake wiki page. Both are hybrid proof-of-stake/proof-of-work implementations, meaning that 51% of the total wealth and 51% of the network hashpower would be required to create and maintain a fork. You can find the (unofficial) forum discussion thread here.

"they could perform a 51% attack with very little input resources, and might well have good incentive to do so" nope. If such an attack is performed, that currency would suffer a tremendous drop in value, hence if you hold 51% of it, you definitely do not want it to lose value. It makes sense only if your goal is not to steal but to destroy, or maybe if you have incredibly hight debts you wouldn't be able to repay.

@Lohoris Exactly, which is why an excess of borrowable funds could pose such a threat. I thought I made that clear in the following sentence, but perhaps I need to clarify - advice?

Is there a "rate of return" for holding coins with PoS?

The environmental impact is missing, I think it is worth to be mentioned in your answer. Proof of stake avoids having thousands of high end CPUs computing unnecessary hashes and wasting electricity.


text:
What is pool hopping?
What is pool hopping and how do pool hoppers affect other miners?
Are there ways to prevent it?

Some mining pools have a reward method for which some times are better to mine than others; normally, miners contribute to the pool equally through good and bad times, and their reward averages out to what is statistically expected.
Pool-hopping is the practice of mining in a pool only during the good times, and leaving during the bad times; by so doing, a pool-hopper can get more out of the pool than the value they contribute to it, increasing their rewards at the expense of other miners. Pool-hopping gets its name from the act of constantly hopping into and out of the pool (to either other pools or solo mining).
The most well-known form of pool-hopping is with pools using the proportional method, which is among the oldest, simplest, most widely used and most prone to hopping. By all accounts hopping in this context was first discussed in a paper from January 2011 by Nakamoto Ryo; a more accurate analysis was given shortly after in Optimal pool abuse strategy by Raulo; these results were extended in Analysis of Bitcoin Pooled Mining Reward Systems by myself.
In the proportional method, a block's reward is distributed between miners in proportion to the number of shares each of them submitted since the previous block; the reward per share is the block reward divided by the number of shares in the round. Because of this, the reward of a share submitted at any given time is affected by the number of shares already submitted since the last block; a share submitted early in the round will have a higher reward on average than a share submitted later.
It can be shown that until the number of shares in the round is 43.5% of the difficulty, a submitted share will have higher than normal reward on average; the optimal way to exploit a single proportional pool is to mine in it until this point is reached, hop to a different pool, and return when a block is found. The gain that can be achieved by following this strategy is up to 28.1%, depending on the ratio between the hashrates of hoppers and continuous miners in this pool (the more hoppers, the less they will gain). The gain can be higher if more than one proportional pool is taken advantage of (for example, 51.6% can be achieved with 2 pools).
The extra profits of hoppers come at the expense of the continuous miners. The exact loss depends on the ratio between hoppers and continuous miners; when they are equal the loss is about 17.1%, and the theoretical limit when there are only hoppers is 43.5%.
Slush's method, which scores shares based on the time they are submitted, was designed to combat pool-hopping, but is only an incomplete solution. SMPPS which strives to converge to the full value of each share in the long run can only be hopped to minimize the time until being paid in full, not to increase the expected reward.
Modern methods make sure that the reward per share depends only on the future of the pool, not its past. This way, without being able to divine future random events, any time is as good as any other to mine, so there can never be any gain or loss from hopping (with the exception of block-withholding attacks). The most popular such methods are PPS, PPLNS and DGM.
Advanced forms of pool-hopping, possible in some naive reward method implementations, include difficulty retarget hopping, tx fee hopping and hashrate fluctuation hopping.

Pool hopping is a mechanism by which certain miners may exploit the payment mechanisms of pools to dramatically increase personal profits.
The original mechanism by which funds were distributed to miners is the simplest and most obvious: Each miner submits "shares" of work and when the pool finds a block, the divide the block reward based on the proportion of the shares - if you did 50% of the work you get 50% of the reward, if you did 3% of the work you get 3% of the reward. Simple.
Unfortunately this creates an imbalance wherein blocks solved in less than average time are worth more per share than blocks that took average times or longer to solve. This makes proportional pay systems inherently exploitable.
To simplify the concept, imagine you're at the world's strangest casino. The only game in the house is rock-paper-scissors and you're playing against the other patrons. If you win the first game after you sit down at a table, they pay you 10 times your bet. The second game pays 9 times, the third pays 8 and so on until eventually you're not even earning your bet back. It seems obvious that the optimal strategy is to hop from table to table taking advantage of the 10x payout rule as many times as possible without every hitting diminishing returns.
Pool hopping is much the same. Mathematically it works out that diminishing returns begin when all workers combined have submitted a number of shares approximately equal to 43% of the current difficulty. After this point, your shares aren't worth any more than average and it becomes more profitable to hop to another pool with fewer shares. This strategy produces, on average, about 28% more income for a pool-hopping miner.
The effect of pool hopping on the other users of the pool comes from a shift in one factor of mining without a corresponding shift in the other: time vs. hashrate. Without hoppers, the value of shares in a proportional pool differs with time - shares submitted early in a round are worth a great deal more than those submitted later, but as long as hoppers are not present, the value of shares average out to a fair value. While hoppers do not change the average number of shares per block or the number of shares an honest miner submits, they do decrease the duration of the higher-paying portions of a round. With the most profitable portion of the round taking significantly less time to complete than the remainder, a miner submitting shares at a constant rate will have far more shares on average in the less profitable parts of a round than in the most profitable, thereby reducing their overall average share value. The more hoppers are present, the shorter the profitable span becomes and therefore the more dramatic the effect.
Preventing pool-hopping is simple: When creating a pool, simply choose an algorithm for funds distribution that has been proven immune or even hostile to hopping - i.e. anything but proportional. When choosing a pool to mine in, one should similarly choose a pool which has chosen a fair payment schema.

If pool hopping works, that means hoppers get more than their fair share. That means someone must get less than their fair share. Take one guess who that is.

I'm sorry but I have to downvote for the wrong and very misleading remark that hopped pools pay fairly over the long term. Will undo when that's fixed.

I disagree with these statements but will remove that paragraph anyway, in the interest of not being flamed for agreeing with math and common sense instead of popular hatred/opinion. I think you're working with an altered definition of "fair" that is only correct for PPS or other newer methods. Prop says you get a % of pool income based on shares and you do whether the pool is hopped or not. You're being paid exactly what you're supposed to be paid.

By way of explanation: Imagine you're a dedicated miner on such a pool and hoppers show up and your pool solves a block in only 10% of the expected time - your shares are worth proportionally more than average too. At the times when the miners leave your shares are worth proportionally less than average. Hoppers aren't stealing from regular users, their share values will even out, they are simply mining at whatever place is most profitable for them right now - the failure of prop isn't that it lets hoppers "steal" it's that hopping creates volatility that pools are supposed to prevent.

@DavidSchwartz it's not that hoppers are getting "more than their fair share" it's that there are periods of time on prop pools that everyone gets more than their fair share and the hoppers only hang around for those times. All miners' shares are still worth the same amount averaged over time and it still takes the same number of shares on average to solve a block. Hoppers are essentially gambling on short blocks in such a way that actually does ensure higher profitability. There's plenty of controversy to go around WRT hopping but no one has shown me actual MATH one way or another yet.

@DavidPerry: That is absolute nonsense. A miner with X MH/s mining in a proportional pool, will earn less for his mining over the long run if the pool is hopped then if it's not. As for math, I assume you've read https://bitcoil.co.il/pool_analysis.pdf and in particular Appendix B?

@MeniRosenfeld How about something with a little less calculus and no nonsense assumptions like an "infinite number of hoppers" - monte carlo simulation perhaps? Actual data from an actual hopped PPS pool? I'm sorry but when you open your statement with the assumed premise of an infinite number of hoppers you destroy all credibility.

@DavidPerry: If there are some times when everyone gets more than their fair share, there must also be some times when everyone gets less than their fair share. It should all even out so everyone gets their fair share overall. But if pool hoppers are there when everyone gets more than their fair share and gone when everyone gets less, then it won't even out. The hoppers will only get more than their fair share and the non-hoppers will only get less.

@DavidSchwartz seriously consider what you're saying here. Imagine we're talking about actual resources - a gold mine. The "honest" gold miner only ever sells to one market, whether they're paying well or poorly right now. The "dishonest" miner watches 10 different markets and sells to whoever is more profitable - the premise that since the "dishonest" miner makes more than the "honest" miner's expected average, he must be stealing from the honest miner is nonsense.

@MeniRosenfeld in short, your assumption in this paper relies on the concept that the infinite number of miners bring the pool to 43.5% instantaneously and therefore steal all of those profits from the honest miners. This is ridiculous nonsense - regular miners get shares in during the first 43.5% as well and when blocks are found early are paid disproportionately. Of course it looks like theft if you assume regular miners never get shares in while the pay is above average.

@DavidPerry: That's not what happens here though. This is like gold miners who cooperate by splitting all the gold they find based on hours worked. The "honest" gold miner digs even when there is no vein in sight. The "dishonest" gold miner joins the cooperative the second they find a vein and leaves as soon as the hard work of finding the next vein starts. And he is stealing from the honest miners, just as the pool hopper is, by getting a greater share of the profits relative to the work he contributes and leeching off the others willing to do the equally-necessary but less rewarding work.

I'm done arguing this in comments. No one can find any data on this subject that doesn't require an advanced mathematics degree to verify or have ridiculous premises like infinite numbers of miners. There is no data on this as far as I'm concerned and that brings this to a difference of opinion which I refuse to continue arguing. I removed this paragraph from my post, there's nothing to argue about any more. I'll gladly debate with you elsewhere if you'd like :)

@DavidPerry: OOC is handy with both simulations and analyzing empirical data in NPW, you may want to look at his work. Or do a simulation yourself if you won't listen to common sense. I derived the potential loss when there are infinitely many hoppers because it's easiest; obviously if there is some finite power X of hoppers the losses will be more than 0 and less than 43.5%, depending on X. Don't worry, I'm done arguing with you in either these comments or elsewhere, you should do your homework.

I've been chatting with Meni outside of comments and I think I see where my brain was failing me yesterday - let's just say it all boils down to "don't do (then argue about) research while you're sick and pumped full of mind-altering medications." I'll amend my answer to include the corrected information and apologize for the ridiculousness of this comment thread. I'll be the first to admit I'm wrong, once proven, but half the point of admitting mistakes is to learn from them and I can get quite stubborn when I'm failing to understand how or why I was incorrect :P

PPS = pay per share. I think what you mean is "proportional"

I've fixed it. Next time you might want to try suggesting an edit :)

Feel free to delete any of my comments, including this one.

I'd blow away this whole thread, but I don't want to be accused of covering up the evidence of my failure. I shall leave such decisions to my fellow moderators.

My first answer only refers to the " how do pool hoppers affect other miners?" part of the question. The loss to full time miners at a standard proportional reward pool can be calculated as:
Maximum loss of share value for fulltime miners =
 (exp(x) * (x * y * E1(x) + y - 1) - y) / (exp(x) * (y - 1) - y)
where x = shares already submitted to pool in round as a fraction of difficulty,
      y = (pool hopper hashrate - fulltime miner hashrate) / (average hashrate up to "hop point"), and
      E1(x) = Exponential integral (n=1, x)
More details: http://organofcorti.blogspot.com.au/2012/08/61-bitlcnet-pool-hopping-and.html
As for preventing it, if you're a pool operator use a fair reward method: Pay Per Share, Double Geometric Method or PPLNS.
If you're a miner, mine at a pool using one of the above reward methods. Either that or mine solo.


text:
Does Bitcoin work better for one user if they always use the same IP?
I use a VPN and regularly change my IP.  As it is, I've been running Bitcoin on and off (mostly "on") for over a year now and have yet to generate anything (well, except lots of heat).  So I got to wondering if having different IP addresses would help explain this "dry spell."
Thoughts?
Thanks.
Edit 1
Thanks for the responses. I'll be more clear.
"...running Bitcoin...." means I have the "Bitcoin client" up and running with "8 active connections to Bitcoin network." The green checkmark icon on the lower, right-hand portion of the "Bitcoin Wallet" window, which is what comes up when I single-click the "Bitcoin Client" icon in the System Tray, reports "Up to date. Downloaded 188,522 blocks of transaction history. Last received block was generated 32 seconds ago";
"...generate anything...." means I have a "0.00 BTC" balance in my wallet.
My system as a relatively-basic Windows Vista computer that is my primary device for reading, composing, blogging and (occasional) video watching; no gaming and the like. It does have a GPU (128M or 256M, as I recall) but it, as well as the system as a whole, is neither intended nor designed as a Bitcoin generator. I just thought since I'm online a lot during the day and do torrents overnight (the PC doesn't stay off for long), why not put it to work generating Bitcoins?
Maybe I'm doing it incorrectly.
Thanks.
Edit 2
Ok. I definitely didn't do this whole Bitcoin thing correctly from the start.
As near as I can tell, I had downloaded and was running only my wallet; I was doing no mining (Sure pays to completely read directions.)
So I'm now running the GUIMiner program, doing pool mining.
I think I'm now on the right track.
Thanks.

Are you mining with a graphics card? CPU mining is so inefficient there's a good chance you'll never solve a block with it. More info here: http://bitcoin.stackexchange.com/q/59/516

This question might also be of interest: http://bitcoin.stackexchange.com/q/118/516

What do you mean by "generate anything"? What are you trying to generate? When you say "running Bitcoin", what exactly do you mean?

Further to David's comment, if you're running the standard Bitcoin client with the generate option turned on, then you're CPU mining. If that option is off, then you're not mining at all.

What hardware do you have, and what software are you running?

If you are using the standard client alone in hopes of generating Bitcoins, you most likely won't solve a block in your lifetime, regardless of your IP.
If you are using some GPU-based mining software, it will still take a long time. In general your IP does not affect it, as long as your miner is set up correctly (say, to a mining pool).
IF you are hosting your own bitcoind instance and mining on two different machines, yes, it can make the difference, but only if your bitcoind's IP is changing, thus not allowing the miner to connect to it.
If you are just running the standard client in hopes of generating Bitcoins without any extra configuration, you are out of luck - the client by default is not generating Bitcoins, as it would be highly inefficient at it.
All in all, unless you really know what you are doing, you ought to look into mining at a pool with a mining software such as GUI miner. But first you really ought to check if it is really worth it. You can do such calculations using my Bitcoin calculator and getting your hardware specs from here. Most likely you'll find the answer to be, that is it not profitable for you to mine Bitcoins, as your electricity costs will be greater than what you will earn.
For the future, be more clear about what you are trying to do and what is your setup, as it allows people to give more specific answers to your problems.


text:
Bitcoin client only has 1 connection?
I have had bitcoin for a little bit now.  It has been going very smoothly.  I have set up 3 accounts for various activities, privacy, and security reasons.  I now can not get all of the block chain.  When I go to download more of the block chain it just sits at 175408.  I have been at it for hours.  When I first got bitcoin it worked perfectly, but now even after reinstalling the bas** it is still stuck there, and my total connections went from eight to a one.  If anybody has any suggestions on to what the problem could be I would be grateful.

Accounts?  What do you mean by "accounts".  If you are referring to Windows user accounts, and each one has a copy of the blockchain, are you running out of disk space then maybe?

What o/s, o/s versioin, and Bitcoin client version?

Voted to close (ambiguous question) since the author has not followed up with answers to important questions.

Maybe the client is having a hard time finding peers.  If you close it and remove the addr.dat then restart, it will go through the dnsseed process again.

http://en.bitcoin.it/wiki/Data_directory

This question has been asked a few times before:

I didn't receive a Bitcoin Payment. What does it mean when the Client is synchronizing?
What can I do when the blockchain synchronization is stuck at a specific block?
Bitcoin client 0.4.1.1 stuck at block 176947

Is there anything in the answers of those that helps?


text:
scrypt mining rig suggestions
i went to configmyrig.com and selected the options to hit something close to 5mh.
here is a screenshot:
http://s28.postimg.org/uayj19exp/Screen_Shot_2014_01_09_at_11_21_58_PM.png
i'll be scrypt mining at a multipool and the total that came up for the complete setup is about $5,000 seems like alot but let me know if you have any suggestions. What i'm wondering is how many PSU's would I will need and what kind is recommended? I'm thinking it would be a gold or platinum for the PSUs but i'm not sure how many and what kind would suit 6 Radeon R9 290x's. Also is the motherboard & cpu selected good enough? I'll be using a milk carton for the rig instead of a case so i'll need to get a hold of a good one.

Clarifying on the power consumption:  The TDP of the R9 290x is up to 300W, so let's assume 360 to leave room for power tuning.  Assuming a 75% efficient PSU, that's 2880 W for the GPUs alone (also add your CPU and mobo.  Err on the safe side, count at least 3000 W).  I don't think a single 750 W supply will be able to give you 3 kW. ;-)  Not only that, 3 kW is an awful lot of heat to dissipate!  Any thought to water cooling systems?  Also, I don't think that mobo has room for 6 GPUs, I bet each GPU takes at least 3 slots, and then you have to leave room for a LOT of ventilation.

Just to put these numbers in perspective, I had to upgrade from a 600 to a 750W PSU for my own mining rig with two low-end cards.  My rig uses about 550 W while mining, and it makes my decently sized room quite uncomfortably warm, not to mention that even with 7 fans I'm having trouble controlling the heat production.  You'd be dealing with almost six times that.

What i'm wondering is how many PSU's would I will need and what kind is recommended?

I would recommend much higher PSU, at least 1000 Watt PSU for each two Radeon's R9 290x. This is based on some recommendations I found (here and here). I am 99.99% confident a single 750 Watt PSU will NOT be able to cover 6 GPUs of that power.
I also think the motherboard you selected can only take 3 cards, you need to double check. Even with 3 slots the cards may not have enough room between the slots, so you will need to use extension cables. The CPU is actually overpowered, I would select a low-power one. CPU will not be used for mining. Memory is not used as well. You will be covered with a 2-4GB stick to run the OS processes.
No one seem to be bothered with a case. For that much price of a hardware you don't want much dust to come in. Or any morning coffee spilt on your expensive hardware... I would advice to buy a large, solid, enclosure with good ventilation. This would cost you around $200. But it will protect the hardware much better then a milk or vegi plastic case.
Just thoughts, I am NOT a professional electrical engineer.

I found a DIY article (http://www.ltcminingcontracts.com/DIYRig.aspx) for scrypt mining that uses 5 x Gigabyte R9 270 GPUs and a 1200 watt PSU.  They are more cost efficient than the 290X.  They use a lot less power, and although they have a lower hash rate individually, you can get multiple (for a larger combined hash rate) for the price of just one 290X.


text:
How can I use the USB block erupters to mine Namecoin?
Since the block erupter is useless to mine for Bitcoin now. From what I understand the only other two options would be is to mine Namecoin or Devcoin since they use SHA256 encryption. But how can I mine these? Would cgminer work? or is there another app that i need to use?
Also are Namecoin and Devcoin the only ones that use SHA256?

In theory, you can mine any altcoin that uses double-SHA256 hashing algorithm as a proof of work with any ASIC device. The process should be similar to mining Bitcoin - you would most likely want to connect to a mining pool or solo mine in a configuration analogous to mining Bitcoin.
Also note that Namecoin supports merged mining, meaning that if you mine for a Bitcoin block through a pool that supports merged mining, your proof of work can still be used to create Namecoin blocks. This effectively makes you mine for both currencies with the same amount of hashing power, increasing your expected return rate by the amount of other coin mined (so instead of mining just Namecoin, you would be getting some extra BTC kickback as well for your submitted shares).

thanks for the info, i tried looking online for any namecoin pools or how to go about doing it such as what program to use etc and came out empty. Would you know where i can start looking into it?

@Exploit I don't know. I think most people are merged mining instead.

The question was not if it were possible, but how it can be done.

Bitminter does merged mining with Bitcoin and Namecoin. Pretty easy java interface client if you like - but i still prefer cgminer myself (for GPU mining)