1

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 :)

1 Answer 1

1

You've understood a lot of the concepts correctly. When a transaction is received by the leader, they can order it however they want in their block.

The only lifetime restriction for transactions that don't use a nonce is to check that the blockhash (https://docs.solana.com/terminology#blockhash) referenced in the transaction isn't older than 150 blocks.

If a transaction uses a nonce account (https://docs.solana.com/offline-signing/durable-nonce) for the lifetime, then the blockhash must match the one in the nonce account.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.