In the context of Bitcoin, any computer that connects to the Bitcoin network is called a node. Nodes that fully verify all of the rules of Bitcoin are called full nodes. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
Bitcoin network is P2P so all nodes participating in the network are equal. However they may support different functions: routing, the blockchain database, mining, and wallet services. All nodes has routing function, validate and propagate blocks, and also maintain and discover new connections to other nodes.
Full nodes maintain the complete blockchain. They can anytime individually and authoritatively verify any transaction, running a full node also gives the user independence from any central authority. Some nodes - so called SPV nodes or lightweight nodes - use simplified payment verification (SPV) function to verify transactions. Mining nodes are taking part in mining competition to solve the Proof-of-Work algorithm. They can be full nodes, or SPV nodes - part of a mining pool where the pool maintain a full node.
Simplified payment verification nodes (SPV) do not store full blockchain. They are mostly used by devices which are not able to store and operate the whole blockchain because of space and power constraints. To check if any transaction is part of the block they use block headers and merkle path. By using merkle path SPV nodes need siginficatnly less data to verify if the transaction is part of the block or not. After verifying the link between transaction and block using merkle path, SPV node waits for following blocks to verify it by establishing its depth. SPV nodes are vulnerable to denial-of-service attack or a double-spending attack, they also create a privacy risk because they are asking for information about specific addresses and therefore someone on network could easily associate bitcoin addresses with the user of that wallet. Against privacy risks SPV nodes use so called bloom filters which allow to receive a subset of the transactions without showing exactly which addresses they are interested in.
- Andreas Antonopoulos - Mastering Bitcoin