I will now summarize the steps described above; this is what happens in the network −
Anybody who wants to obtain services from the third party who has advertised on the network first creates a transaction (message to the desired recipient).
Over a given period of time, there could be many senders (buyers) and receivers (sellers) creating such transactions.
All transactions are broadcast on the network to all nodes. Note that it is not necessary that a given transaction must reach each and every other node in the network.
Each node assembles the new transactions into a block. Note that the set of transactions in each block is independent of the set in blocks created by others and will naturally be different than others. This does not matter; the system ensures that every transaction broadcast on the network gets included in some block over a reasonable amount of time. Generally, the sender will incentivize the node by offering a certain amount of bitcoins to the miner for its efforts. The miner may opt for giving priority for inclusion in the block to those with higher incentives.
The node now works on finding the proof-of-work for its assembled block.
When the node finds a proof-of-work, it broadcasts the assembled block on the network.
The nodes that receive the new block will accept it only after verifying that all transactions in the block are valid and not already spent.
If the block is accepted as valid, the node which is working on its own new block will have to re-assemble the transactions in its block ensuring that the transactions are not duplicated. The node now works on finding the proof-of-work on its newly created block; while doing so it will take the hash of the accepted block as the previous hash.
Likewise, the blockchain continues growing for ever.
Now, as we have seen how the entire system works, let me describe some of the side effects and how to resolve them.