I have several questions, but the topic is my biggest:
1) When a block is solved, does everyone else have to start over, create a new block, and begin looking for the right hash again? For example, Slush's pool, ASICminer, and BTCGuild are all mining. Slush solves a block, so ASICminer and BTCGuild both forget their current block, make a new one, and start over again. Is that right? Seems a waste that way, and actually better to have 2-3 big pools rather than 30 or more smaller ones.
2) How are the transactions chosen to be put in a block? Do you just basically grab whatever transactions are floating out there that are not in a block, put them together, and start trying to find the right hash solution?
3) If you can just put any transactions you want in a block, what is the incentive to include any transaction that does not include a fee?
4) Double SHA-256 hash for hello here
https://en.bitcoin.it/wiki/Protocol_specification I can't repeat. The first round I get the same, but the 2nd round I get d7914fe546b684688bb95f4f888a92dfc680603a75f23eb823658031fff766d9 instead. What am I doing wrong?
Thanks! I've done some searching of the forums, wiki, etc. and haven't found those answers on my own.