Bitnodes shows everyone running nodes.
Are these people incentivized to run nodes? If not, why not? If so, do node operators make some BTC from transaction fees, etc.?
Are these people incentivized to run nodes?
No. Their reasons for running a full node varies. Some of them want Bitcoin to succeed. Some of them are merchants and run a full node as part of their business. Some of them have spare computing power, and don't have a strong preference as to how it's used. It's worked out reasonably well so far.
If not, why not?
It's extremely challenging to prove that you're running a full node. This code pretends to be a full node, though it really just forwards requests it can't answer to other nodes.
If so, do node operators make some BTC from transaction fees, etc.?
No. Miners receive transaction fees, although it's not a substantial part of the overall block reward. (Most node operators are not miners.)
Nick answers your other questions well, but I wanted to provide a more complete answer for this question:
If they're not subsidized, why not?
Subsidizing full nodes is a bad idea. If the value of the subsidy is substantial, it will likely attract people trying to scam the subsidy program by creating nodes designed to receive the subsidy rather than help the network.
Mining is subsidized, and from about 2010 to about 2013 (and even some afterwards), hackers frequently installed CPU mining software on hacked computers to claim the subsidy using other people's resources. It wasn't until CPU and GPU mining became useless – i.e. non-subsidized – that the hackers stopped.
Because full nodes provide the highest level of transaction security, we want them to be as accessible as possible to users – so we can't require specialized hardware or require users spend too much manual time setting them up. And because Bitcoin is decentralized, we also can't do things like validate identities or use other centralized tools for reducing fraud.
That means we can't offer a subsidy for running full nodes without also allowing hackers to claim that subsidy for running full nodes on other people's computers.
You might think that other people's hacked computers shouldn't be our problem, but it does become our problem. Either we stop people from abusing our system, or people who make security software will stop people from using our system. For years now, my home ISP has blocked port 25 (the Simple Mail Transport Protocol, SMTP) because it is used by many botnets to send spam. If it becomes common for botnets to run full nodes, we'll likely see Bitcoin's port 8333 blocked as well.
Rather than paying random people on the Internet to manage our network security for us, we should make it easier to run a full node so more people can enjoy the security and privacy benefits that come from running their own node.
(To this end, the Bitcoin Core developers are working on improvements such as the headers-first sync included in 0.10.0 and the upcoming auto pruning, which will reduce the disk space requirements for full nodes, as well as several other improvements.)
Bitnodes is incentivizing node operators:
I wanted to challenge the idea that we should not incentivise the running of nodes.
What I am not saying: I am not saying to write incentivising into the core.
I believe we do need to think about how node operation can be encouraged via financial incentive, this is because long term I believe that all things that provide value should be encouraged via micropayments.
Financial incentives create a feedback loop in which the market helps optimize. This creates more development and faster iterations and more collaboration on it.
This could exist as a sidechain, alt-pegged coin, or even how p2pnodes work which is up to the node provider on how much the charge.
Just wanted to see more discussion on this! All of you have good points above, however, I see them as things we need to think about when thinking about how to provide incentive to running full nodes.