I've recently learnt Solana and I'm really impressed by its Proof of History. But I'm still confused about some details after reading the white paper and lots of docs and blogs.
When a normal user creates a transaction, he/she should add the last observed PoH hash (say hash A) to the transaction data. Then when the Leader receives the transaction, he/she will use the transaction data to calculate the next hash (say hash B). In this way, we can tell that the transaction must happen between hash A and B.
Is my understanding correct? If yes, then the actual happening time of each transaction is within a time range, not an exact moment like 2023-12-16T14:11:00Z.
So how does the Leader order the transactions? Does he/she order transactions based on their lower bounds (like hash A) or upper bounds (like hash B)? Or something else?
More confusingly, if the time range is too large (i.e., the upper bound is too far away from lower bound), will the Leader simply throw away the transaction?
Can anyone help me on my questions? Thanks in advance. I have knowledge of Bitcoin and Ethereum, so you can use some comparisons and analogies if necessary. Really thanks :)