2
1
https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ :
If the light client wants to determine the status of a transaction, it can simply ask for a Merkle proof showing that a particular transaction is in one of the Merkle trees whose root is in a block header for the main chain.
Please note that image is taken from reference 1.
Verification of a Merkle path proceed from the leaf node to the Merkle root.
As seen from the example image, we actually could not know that transaction-3 is located under that specific block and leaf-node since a light client only downloads the merkle root.
[Q] How could we determine that a particular transaction in which block's Merkle tree and Merkle tree's which leaf node? In order to determine the status of that transaction should we iterate through all blocks in the blockchain until we find the specific transaction? And when we find its block number, how could be actually determine its leaf node.
Thank you for your valuable time and help.
(1) https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/

As I understand with the merkle root, we should also have/store the 'branch/path' for all the transactions under each block? that will eventually help us to verify the transaction. @MeshCollider♦ – alper – 2017-12-06T18:27:20.647
1The merkle tree is always determined by the order of the transactions in the block, you don't need to store it separately unless you want to save a bit of time :) – MeshCollider – 2017-12-06T22:12:29.810
1What do you mean by "The merkle tree is always determined by the order of the transactions in the block"? @MeshCollider♦ – alper – 2017-12-24T12:53:45.330
@Alper the order of the transactions is the same as the order of the leaf nodes in the merkle tree – MeshCollider – 2017-12-24T12:58:28.120
Got it. I get lost about. For example: I am a light-client or full-client. There is thousands of TXs on the blockchain. When we want to validate one Tx, should we iterate all blocks on the blockchain or do we know the exact block-number of the each Tx, where we can focus on that block to check Tx's validity? @MeshCollider♦ – alper – 2017-12-24T13:01:33.330
As a light client, you ask full nodes to send you transactions which are relevant and not the rest. BTW please remember to accept my answer if it helped you :) – MeshCollider – 2017-12-24T13:02:50.573
As I understand each block contains its merkle-tree that contain its transactions and all block's merkle-tree is different from each other. So when a full-node provide me the transaction I want; how does the full-node knows the Tx's block number, that could provide me the branch/path of the tree? @MeshCollider♦ – alper – 2017-12-24T13:06:39.620
@Alper full nodes verify all transactions in all blocks so they know what block the transaction is in – MeshCollider – 2017-12-24T13:13:47.793
Sorry for too many questions :( So do full-nodes keep a additional database or hash table the keep record of which transaction located under which block? I didn't ask this question only for light-node perspective but also for the full-client perspective. @MeshCollider♦ – alper – 2017-12-24T15:47:49.283