Full nodes are responsible for verifying that the transactions and blocks they receive are valid, and relaying those which correctly abide by the Bitcoin rules to their network connections, or peers. Specifically, full nodes listen for blocks proposed by miners, verify whether or not these blocks have valid Proofs-of-Work and correct transactions, and relay those blocks that meet their requirements. In this way, nodes are responsible for enforcing the protocol rules to ensure only valid blocks are shared throughout the network. In contrast to miners, running a full node on the Bitcoin network does not require advanced hardware and software. It requires only basic machinery and an internet connection. Limiting the costs in this way encourages users to run full nodes.