Bitcoin is a P2P network made up of equal nodes which all function in the same way.
From a strictly technical point of view, a Bitcoin full node is a piece of software that is built according to the Bitcoin protocol and fully verifies all its rules.
The most widely used software is Bitcoin Core, which is the latest version of the original software developed by Satoshi Nakamoto in 2008.
To date there are more than 10,000 public nodes with Bitcoin Core, while the other software used for Bitcoin network nodes are much fewer: 69 with Bitcore, 35 with Bitcoin Knots, 21 with bcoin, 18 with Bitcoin UASF, 7 with Bitcoin Unlimited and one each for btc1 and Bitcoin Classic.
However, these are the public nodes, i.e. those that can be reached online by anyone, but it is estimated that there are many more private ones, i.e. installed to be used only by the operator.
Bitcoin nodes have a fundamental task: to store the blockchain.
The Bitcoin blockchain is a file of about 410GB that contains all the Bitcoin blocks with all the transactions that have been recorded on the blockchain since its inception on 3 January 2009.
All nodes keep the exact same file, though each one updates it independently by adding new blocks that are mined by miners.
When a miner succeeds in mining a block, he communicates it to all nodes, which verify it and, if correct, add it to their own blockchain file that they store. Sometimes, in rare cases, different nodes add different blocks, but only those that have more blocks concatenated afterwards are considered valid.
In theory, anyone can make their own software to manage a Bitcoin node, as long as it is compatible with the protocol. The protocol is public, so anyone can download it and produce compatible software. However, it is much easier to download and install Bitcoin Core.
Installing a Bitcoin node is very easy, but it is also a lengthy process, both because once it is installed it has to download all 410GB of the blockchain, and more importantly because it has to verify, one by one, that the nearly 690,000 blocks conform to the protocol. The validation process is not very fast, and since there are many hundreds of thousands of blocks to verify, it can sometimes take days.
The task of Bitcoin’s nodes is to verify and guard the blockchain.
In 2009, when the first block on the Bitcoin blockchain was mined by Satoshi Nakamoto, there was a single piece of software, simply called Bitcoin by Nakamoto, which acted as both a node and a wallet, and which was also used to mine blocks. Over time, however, mining became increasingly difficult, so special mining software was developed. At the same time, it became evident that wallets were needed that did not have to download and verify the entire blockchain, and so stand-alone wallet software was born.
The end result of this evolution was Bitcoin Core, which is a software that only acts as a node, although it also integrates a wallet.
Those who do not need to verify the entire blockchain, and trust the verifications made by the other ten thousand nodes, can download a stand-alone wallet to carry out transactions. Miners, on the other hand, use different software to mine.