you still dont understand. if you think nodes only job is a data store. then please go read some code
Yes, that's essentially it. Non-mining nodes download the block chain, and verify it FOR THE OWNER OF THE NODE. They also relate those data to other nodes wanting to download the block chain from them, and not directly from a miner node. If the cartel of miners makes one single block chain, then those nodes have the choice between accepting that block chain, or stopping all together.
And they send upstream those transactions that wallets, connected to your node, want to send, if they prefer to send it through your node, and not directly to a miner's node.
A user wallet doesn't need your node. It can connect directly to a miner node. But it MAY use your node for, well, for what ? Convenience maybe. A big user will of course have its own node. For instance, an exchange may install (will install) its own node. But it can only download one single block chain, because there's only one single block chain "out there". If it wants to serve its customers with deposits and withdrawals, it better installs a node that accepts the one and unique chain out there, and better transmits its transactions to the miners making that unique chain. A big exchange better doesn't rely on the feable P2P links of unknown in the network, and preferentially connects DIRECTLY to some big miners. To be sure to get their (unique) chain. And to be sure that their transactions are not stopped by the P2P network for one or other reason.
The P2P network configuration, and the propagation of transactions and blocks made sense when miners were "everywhere on the network". Then, the network as a whole, served as a kind of "filter", and stopped single miners from "colluding". But that is over, now that there are 5 majority miners. The P2P network is obsolete in the current configuration which is server/client.