A full node is a network connected program which runs an official cryptocurrency client and has the ability to verify messages, transactions and blocks.
Full nodes may or may not keep a complete and synchronized copy of the blockchain. A node which has already verified the chain up to a certain point is able to act as a full node while keeping only metadata about verified blocks, not requiring a full copy of the blockchain.
Early Bitcoin Full Nodes
When Bitcoin first appeared, everyone running the client program was automatically a full node.
Not only was the Bitcoin Core program able to verify data, but every client was a Bitcoin miner too and could earn quite a few BTC per day just by keeping the software running.
We all know how mining changed with GPU’s and ASIC’s, and suddenly mining using a regular CPU-run program was no longer feasible.
So the early concept of a Bitcoin full node, which would also mine coins, was soon changed to the more current meaning: a node which has the ability to verify messages, transactions and blocks, with or without a complete sync’ed copy of the blockchain in it.
A full node can also broadcast and receive transactions from other P2P network users, thus contributing to the P2P network.
Light wallets are the alternative to full nodes.
With lightweight wallets, the blockchain or metadata is not fully downloaded to the application.
The client then trusts a centralized service to process its transactions.
Electrum Wallet is one such solution for Bitcoin, and MyEtherWallet is a similar application for Ethereum.
Both these systems run on local web interfaces and have a programming library that can generate, sign and the send transactions to a central server.
This central server must be trusted, of course, for this system to work securely. The server itself must run a full node or forward received messages to a trusted full node.
Lightweight wallets break cryptocurrency decentralization by requiring a central trusted authority.
The main reason to use lightweight wallets is convenience, especially in resource-limited devices. Running a full node can be a very demanding process, especially because it must be online and network-connected 24 hours a day in order to stay in sync with the network.
Running a Full Node
The only way to be fully decentralized is to have a copy of the blockchain, or verified metadata, on local storage.
Currently, all major cryptocurrencies require hundreds of gigabytes of hard disk space to accommodate the blockchain. They also tend to grow quickly. Bitcoin Core’s local data store, for instance, grows tens of megabytes per day.
Running a full node requires permanent and stable network access in order for the node to keep up with the network and to be able to participate in it. Bitcoin network usage is approximately 5 Gigabytes per day. Therefore it is not suited for limited or expensive metered connections.
Running a full node is a matter of downloading the official client for your cryptocurrency of choice and keeping it running 24 hours a day.
Care must be taken not to download a fake or malware version of the software.
Make sure to only access the official channels for your cryptocurrency. If in doubt, search for your cryptocurrency on Crypto.BI or go to CoinMarketCap.com and look for your cryptocurrency there. The description page will have a link to the official website. Some scammers are able to manipulate search results to place their malware high up. Do not trust search results, always look for an official reference link.
Running a full node is a matter of maintaining ample disk space and stable internet connection. As long as the client is running, it does the rest on its own.
Illustration Credit: Syp via Wikimedia Commons by CC