The Bitcoin network is a peer to peer network (P2P) or a decentralised network with no central point of failure or command. All the nodes, or computers, that participate in the network are equal – there is no hierarchy – or no topology as the network is flat.
The Bitcoin network is a collection of nodes running the Bitcoin P2P protocol with other protocols such as stratum, used for lightweight mobile wallets (where the full block chain is not downloaded) or for mining.
Although the network is flat, and all nodes are equal, some nodes or computers perform a different task.
A full node does routing, holds a full copy of the blockchain database, performs mining and provides wallet services. Any node has to provide the routing function to participate in the network. Routing is just another way of saying that the node validates and passes on transactions and block as well as discovering and maintaining connections to other nodes, whether they are full nodes or not.
Some nodes don’t hold a full copy of the blockchain and verify transactions by using the Simplified Payment Verification, or SPV.
Mining nodes, that run specialised application specific integrated chips to solve the proof of work algorithm. Some of the mining nodes are full nodes whilst others are lightweight participating in pool mining and using a pool server to maintain a full node.
Wallets can be a full node – as is the case with downloading the full bitcoin client onto your desktop. Mobile wallets however can’t hold the entire blockchain through space requirements and are essentially simplified payment verification nodes or lightweight nodes.
Apart from these main classifications there are other servers and nodes running other protocols - such as alternative wallets and specialised mining pools. The main Bitcoin network contains about 7000-10000 nodes at a time!
When joining the network for the first time a new node must discover at least one other existing node – geographical location takes no precedence in this procedure. The new node sends a series of messages and then if the other node wishes to form a connection it replies.
The new node must form new connections to the network, as sometimes some nodes go offline from time to time as people switch their computers off. Then the new node is meshed into the network and resilience is created.
If you want to run a full node you’re now in for a bit of a wait - all the transactions since Bitcoins genesis in 2009 need to be downloaded. This is done by requesting other nodes to send all their information over to you, and so as not to overload them, this can be done in conjunction with other nodes.
But the good news is if you want your own wallet on your phone and don’t want, or need to run the Bitcoin full client, you can simply just use Coinbase’s or blockchain.io’s simplified version and set it up in seconds.