if i am saying that node A is having some block (B) and other nodes X,Y,Z are wants to validate the block B than node A has to send the block B to nodes X,Y,Z. This block B contains the hash of previous block, time stamp, nonce and Merkele root where Merkle root are created from list of transactions. So Node A send the entire things included the list of transactions to other nodes X,Y,Z or node A send only block excluding the list of transactions for the validation process.
1 Answer
Yes, in general node A will send the entire block with all transactions in entirety to other nodes for them to validate. The receiving nodes will receive an entire block with everything in the block header and every transaction in the order that is required by the merkle root and they will validate everything in that block.
There is a network optimization where node A would send the block header, the coinbase transaction, and the list of transaction ids of the transactions in the block. This saves network bandwidth. By using a list of transaction ids (and not the transactions entirely), node A assumes that the other nodes already have those transactions because they were in its mempool (i.e. those transactions were unconfirmed and broadcast to the network prior to a miner including them in a block). The receiving nodes would then pull those transactions out of its mempool and reconstruct the block. If they are missing any transactions, those are requested from node A.
The end result is that they have constructed a block that looks exactly the same as the one that node A has, i.e. it is the same block. They can then pass this reconstructed block through the exact same verification functions as they would have with any other block received in entirety.
This optimization is known as Compact Blocks.
Either way, when node A sends a block to another node, that node will end up with a block that has the block header and all of the transactions contained within the block. Node A always sends the list of transactions included in that block.