Hi Calvin,
Great question!
Channel creation in fact is just a process of creating a “genesis block for the channel”. It is a process happening in the orderer. In the orderer it is the “genesis block file” + “channel transaction”. So therefore it is not considered as a transaction, i.e. no block is created. The result is a genesis block for the channel, that will be used in the next step.
Channel joining is a process to use the “genesis block file for the channel” generated before and use peer channel join
command for each peer. In fact this becomes the Block #0 in each peer. Since the same file is used, all peers now have the same Block #0, and the blockchain is built from here.
All activities after channel joining will be considered as transaction, and therefore a new block is created. The transaction including “configuration transaction” such as the anchor peer (block #1 and #2), and “chaincode instantiation and invoke”. That is the block #3 and #4.
Total 5 now.
Hope this helps.
cheers, kc