Simply put, a node is every single computer that is connected to the Bitcoin network.
When a user performs a transaction, its details are broadcasted in the network (user’s public key, recipient’s public key, and the amount transferred).
Nodes receive this information as an incoming connection and acting as intersections, they re-transmit them to other nodes as outcoming connections. In other words, nodes are required to get the message propagated in the network.
Full nodes (running the official Bitcoin Core client) store the whole Blockchain (>150Gb of space is required) that includes all past transactions, new and unspent transactions. Most importantly, they enforce Bitcoin consensus rules in the network. When a new block is propagated in the Blockchain, the information is thereafter broadcasted from node to node, in order to confirm that consensus rules were followed. If a node validates it, the information will be stored and then relayed to every other node it is connected to; otherwise, it will get rejected. These are called validation nodes, and they are necessary for the completion of transactions in the Blockchain.
Full nodes are vital for maintaining the network’s security from malicious attacks and ensure that the miners validate transactions, according to Bitcoin’s core consensus rules. For example, they confirm that blocks are not larger than 1MB, that the transaction signatures are valid in the correct data format or, that blocks create the defined number of new Bitcoins. At the moment, there are more than 5,500 distributed full nodes, to guarantee that the network operates in a trustless and decentralized manner. However, as only open full nodes are countable, it is believed that this number is larger, as many users run full nodes behind firewalls, which limit the number of connection they can receive.
Miners are a node subset, that collects the propagated valid transactional details from other nodes and converts them into a hash. Afterward, they decide which confirmed transactions will be included in the subsequent blocks and they re-distribute the information in the network, from node to node, until it reaches consensus. It is not necessary to be a miner, in order to run a node, but all miners have to operate as nodes at the same time. In the case of pool mining, only the administrator of the pool is required to run a node, as the other participants only contribute to the Proof-of-Work process. The miners, unlike other nodes, are the ones who extend the Blockchain, hence they are incentivized for this contribution, with new Bitcoins.
Another subcategory of nodes is the Lightweight nodes. As the name implies, Lightweight nodes are user-friendly, as they do not store the whole Blockchain history, but they only download block headers, in order to validate transactions. A Lightweight node relies on the trust of a third-party, which means that they have limited privacy (wallet balance is exposed) and they are vulnerable to security issues, like in the case of a hard fork.