Types of clients
The blockchain is a distributed system. Its participants are called nodes. To become a node, you need to run software known as a client. It is possible that there is more than one implementation of clients and that they have different functionalities.
Blockchains are defined by a protocol. A protocol is a set of instructions, or rules, on how the system should work. Any software that implements the protocol can be used as a client. This means that different groups can develop implementations of the same protocol in other programming languages.
Ethereum, for example, has implementations in Go, C++, and Rust languages, among others. Neo has clients written in Go and C#, and anyone can implement the Neo protocol in another programming language.
When the implementation contains all the necessary functionality to participate in the network, it is called a full node. It is possible to develop clients that do not have all the functionality or that execute in non-full node modes. These are called light nodes.
To fully participate in the network, one must be a full node. However, full nodes need to store a local copy of the current state of the network, as well as the history of all transactions. It demands processing power, storage, along with fast and reliable connection. Thus, not everyone can be a full node.
Light nodes are implementations that don’t require storing all of the network states, just part of it. This makes them lighter and it requires less storage. The downside is that light nodes need to interact with full nodes to request information they don’t have locally. Some wallets are examples of light nodes, although not every wallet is a node.
However, most blockchain users do not run any client. They utilize services from external nodes. This means that when they want to execute some method on the blockchain, such a request is sent to a node, and the node is responsible for managing it. Even though full nodes are the backbone of any blockchain, the gateway for most people is their wallet.
In short, running a full node is the best option if you want to participate in the network and help with its security. If you just want to interact with the blockchain eventually, using a wallet is enough.