Nodes that fully verify all of the rules of Bitcoin. The most popular software implementation of full nodes is called Bitcoin Core.
A full node is a program that fully validates transactions and blocks and check them against Bitcoin's consensus rules. 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.
Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet. If not enough nodes perform this function, clients won’t be able to connect through the peer-to-peer network—they’ll have to use centralized services instead.