I was debugging an issue in our backend where two parallel transaction ended up having the same Transaction ID.
This is what Solana docs say about the Transaction ID:
Transaction ID
The first signature in a transaction, which can be used to uniquely identify the transaction across the complete ledger.
Here's an excerpt from the docs for sendTransaction
RPC call:
The returned signature is the first signature in the transaction, which is used to identify the transaction (transaction id).
This identifier can be easily extracted from the transaction data before submission.
Does this mean that the transaction signature doesn't depend on the on chain state?
If I have a transaction with an instruction AddOne
which does something like program_data.x += 1
, the instruction data will be constant right? So the transaction signature will also be the same?