I've seen this question answered before, but I can't recall where. What is the maximum number of transactions per block?
It's not limited by number of transactions, but by individual and collective size in kilobytes. I can't remember the exact details, but I'm pretty sure that the total free transactions are limited to 25 KB and then fee paying transactions increase the minimum required fee to a maximum hard blocksize limit of one Mb.
Somehow, this block has 43 KB of free transactions:
http://blockexplorer.com/b/118089Then it's probably 50 KB, I know that it's not much.
Is a limit on free transactions set in the mining client, or is it a condition of a block being valid?
I believe that the fee structure is a condition of validity, but miners are not compelled to include free transactions at all. In a future that there are enough paying transactions to max out the total blockspace, free transactions are likely to be ignored my profit minded miners. Although there will likely be some miners that always include free transactions on ideological grounds, there is no way to know if free transactions will continue to be processed on any reasonable timescale.
Just some rough math to answer my own question, a 1MB block would contain roughly 3000 typical transactions. Thus there's an upper limit on the transaction processing rate for the entire economy - I reckon that means that once the transaction rate rises over an average of 18k/hr., there will be a minimum fee for your transaction to even have a chance of being processed, and market forces will drive the minimum fee up with time.
Probably, but the 1 meg hard limit was an arbitrary rule included early on as a method to limit harm in the event of a 'transaction flood' spam-type attack. It was never intended to remain in effect, and to my knowledge, could be removed without effect now that the transaction priority score rules and the minimum transfer fee rule are effective. As far as I know, we have never even come close to the 1 meg hard limit anyway.
(Concern over "will there be enough miners?" is pretty irrelevant, except for the matter of security, since I don't believe the number of miners can have any positive or negative impact on the actual transaction processing rate. Correct?)
The number of miners do not affect the block rate in the long term, because the system adjusts to changes in the network's total hashing power every 2016 blocks, or about two weeks. However, within that two week window, it is expected that increasing transaction fees during peak periods will eventually create an "elastic" processing rate by drawing in miners who are marginal with just the block reward. The idea being that during the high transaction periods, the accumulation of fees that are seen unprocessed on the network will trigger automatic generation to try to process those fee paying transactions, and the average time between blocks will drop. The flipside being that on the weekends, and the off periods of the major Bitcoin trading areas, will end up having an average time between blocks longer than 10 minutes to compensate.
In short, "will there be enough miners?" is not an irrelevant question, even outside of the context of security. However, the answer is always "yes" because the ebb and flow of the transactions and their average fees will create a fast moving market that will adapt to the conditions consistently.